亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在不合并對象屬性的情況下推送對象數組以創建新數組?

如何在不合并對象屬性的情況下推送對象數組以創建新數組?

倚天杖 2022-09-23 16:57:02
我正在嘗試將循環輸出保存到一個數組中。如果我控制臺.log(arr2),我得到了我想要的結果,但在多個數組中。我想把所有這些東西都放在一個數組中。當我嘗試使用 .push 時,所有數組都會產生相同的值。也許我可以以其他方式做到這一點,但我不知道該怎么做。    let b = {};    let arr3 = [];    let arr1 = [{value1: 123, value2: 34, value3: 90, value4: 23, value5: 32},{value1: 10, value2: 09, value3: 54, value4: 32, value5: 311}];    for (let a = 0; a <=4; a++){       b = {"value1": a*a, "value3": a+12, "value4": a/2};       arr2 = arr1.map(function(record){       record.value1 = b.value1;       record.value3 = b.value3;       record.value4 = b.value4;       return record;       })       // console.log(arr2);       arr3.push(arr2);}console.log(arr3);這就是我用.push完成的,這不是我想要的。  [  { value1: 0, value2: 34, value3: 12, value4: 0, value5: 32 },  { value1: 0, value2: 9, value3: 12, value4: 0, value5: 311 }][  { value1: 1, value2: 34, value3: 13, value4: 0.5, value5: 32 },  { value1: 1, value2: 9, value3: 13, value4: 0.5, value5: 311 }][  { value1: 4, value2: 34, value3: 14, value4: 1, value5: 32 },  { value1: 4, value2: 9, value3: 14, value4: 1, value5: 311 }][  { value1: 9, value2: 34, value3: 15, value4: 1.5, value5: 32 },  { value1: 9, value2: 9, value3: 15, value4: 1.5, value5: 311 }][  { value1: 16, value2: 34, value3: 16, value4: 2, value5: 32 },  { value1: 16, value2: 9, value3: 16, value4: 2, value5: 311 }]當我控制臺.log(arr2)在for循環中時,我得到了幾乎我想要的東西,想要的結果,但不是在單個數組中。   [  { value1: 0, value2: 34, value3: 12, value4: 0, value5: 32 },  { value1: 0, value2: 9, value3: 12, value4: 0, value5: 311 }][  { value1: 1, value2: 34, value3: 13, value4: 0.5, value5: 32 },  { value1: 1, value2: 9, value3: 13, value4: 0.5, value5: 311 }][  { value1: 4, value2: 34, value3: 14, value4: 1, value5: 32 },  { value1: 4, value2: 9, value3: 14, value4: 1, value5: 311 }][  { value1: 9, value2: 34, value3: 15, value4: 1.5, value5: 32 },  { value1: 9, value2: 9, value3: 15, value4: 1.5, value5: 311 }][  { value1: 16, value2: 34, value3: 16, value4: 2, value5: 32 },  { value1: 16, value2: 9, value3: 16, value4: 2, value5: 311 }]
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

這是因為對象通過引用工作。這應該有效: 替換這個:


 arr2 = arr1.map(function(record){

   record.value1 = b.value1;

   record.value3 = b.value3;

   record.value4 = b.value4;

   return record;

   })

通過您的代碼中的這個:


 arr2 = arr1.map(function(record) {

const tempRecord = {...record}

tempRecord.value1 = b.value1;

tempRecord.value3 = b.value3;

tempRecord.value4 = b.value4;

return tempRecord;

})

你可以通過這樣做來完成最終結果:arr3.flat();


查看完整回答
反對 回復 2022-09-23
  • 1 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號