第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何執(zhí)行我的代碼以獲得想要的結(jié)果

如何執(zhí)行我的代碼以獲得想要的結(jié)果

我創(chuàng)建了一個包含對象的數(shù)組數(shù)組,我在我的數(shù)組上循環(huán),對于包含 y == 5 的對象,我影響對象的布爾變量,然后我通過條件阻止訪問,但是我看到下一個數(shù)組上的同一個對象受到了同一個布爾變量的影響,并且我的控制臺日志顯示該影響僅按時執(zhí)行,如何阻止對下一個數(shù)組元素的影響變量?代碼  test: function(req, res){    console.log("yesss")    var a = {x:1}    let b = {x:2}    let c = {x:3}    let d = {x:4}    let tab1 = []    a.y = 5    b.y = 10    c.y = 10    d.y = 10    let group1 = [a, c, d]    let group2 = [a, b, d]    tab1.push(group1)    tab1.push(group2)    let test = false    async.each(tab1, function(group, next){        group.forEach(function(elem){            if(elem.y == 5 && !test)            {                console.log("******* executed ******")                test = true                elem.bool = true            }            console.log("elem : ", elem)        })        next()    }, function(){      return res.status(200).json({success: true, data: tab1})    })},這是我的控制臺日志控制臺日志    ******* executed ******elem :  { x: 1, y: 5, bool: true }elem :  { x: 3, y: 10 }elem :  { x: 4, y: 10 }elem :  { x: 1, y: 5, bool: true }elem :  { x: 2, y: 10 }elem :  { x: 4, y: 10 }JsonReturn{"success": true,"data": [    [        {            "x": 1,            "y": 5,            "bool": true        },        {            "x": 3,            "y": 10        },        {            "x": 4,            "y": 10        }    ],    [        {            "x": 1,            "y": 5,            "bool": true        },        {            "x": 2,            "y": 10        },        {            "x": 4,            "y": 10        }    ]]}
查看完整描述

3 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗 獲得超10個贊

對象是通過引用分配的,因此您需要對對象進(jìn)行深層復(fù)制,否則對一個對象所做的更改將不可避免地改變另一個對象。在您的示例中,您可以通過簡單地定義一個新變量來保存您想要的數(shù)據(jù)來避免這種情況。


換句話說,而不是這些行:


var a = {x:1}

let b = {x:2}

let c = {x:3}

let d = {x:4}


let tab1 = []

a.y = 5

b.y = 10

c.y = 10

d.y = 10

let group1 = [a, c, d]


let group2 = [a, b, d]

你可以使用這些行:


let a = {x:1}

let b = {x:2}

let c = {x:3}

let d = {x:4}

let e = {x:5}

let f = {x:6}


let tab1 = []

a.y = 5

b.y = 10

c.y = 10

d.y = 5

e.y = 10

f.y = 10

let group1 = [a, b, c]


let group2 = [d, e, f]

然后你會看到行為如你所愿。我不確定你的代碼的目的是什么,但我想你會知道從這里去哪里。


查看完整回答
反對 回復(fù) 2022-01-07
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊

group1andgroup2是引用相同對象的數(shù)組,使用JSON.parse()and進(jìn)行復(fù)制JSON.stringify():


let group1 = JSON.parse(JSON.stringify([a, c, d]));


let group2 = JSON.parse(JSON.stringify([a, b, d]));


查看完整回答
反對 回復(fù) 2022-01-07
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗 獲得超7個贊

我試圖制作引用對象的深層副本,它可以工作


let group1 = [Object.assign({}, a), c, d]


    let group2 = [Object.assign({}, a), b, d]


查看完整回答
反對 回復(fù) 2022-01-07
  • 3 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號