這應該是一個小任務,但想不通。我有一個名為“A”的物件陣列
A = [{x:a,y:10},{x:b,y:5},{x:c,y:50}]
和一個名為“B”的陣列
B = ['2022-06-15','2022-06-16','2022-06-17']
需要將 A 中 x 的值替換為 B 的值
預期輸出 C
C = [{x:'2022-06-15',y:10},{x:'2022-06-16',y:5},{x:'2022-06-17',y:50}]
我正在使用 for 回圈,但它更改了原始陣列“A”(因為 JS 陣列是按參考傳遞的)
const D = A; // or D = [...A]
for (let i = 0; i < D.length; i ) {
D[i].x = B[i];
}
console.log(A);
console.log(D);
uj5u.com熱心網友回復:
不要D
復制A
. 回圈并使用替換的屬性A
制作每個物件的副本。x
const D = A.map((el, i) => ({...el, x: B[i]}));
uj5u.com熱心網友回復:
A
試試這個,它會創建一個into的深層副本D
,這樣當你改變D
它時它不會改變A
。
const D = JSON.parse(JSON.stringify(A));;
for (let i = 0; i < D.length; i ) {
D[i].x = B[i];
}
console.log(A);
console.log(D);
uj5u.com熱心網友回復:
你可以用 .map() 方法做到這一點
const A = [{
x: 'a',
y: 10
}, {
x: 'b',
y: 5
}, {
x: 'c',
y: 50
}];
const B = ['2022-06-15', '2022-06-16', '2022-06-17'];
x
A
表示您的陣列i
中的每個元素和index
, 您將使用它來回圈通過您的第二個陣列B
const C = A.map((x, i) => ({
x: B[i],
y: x.y
}));
console.log(C);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/505112.html
標籤:javascript 数组 目的 引用传递
上一篇:如何在AndroidStudio中創建新的可組合函式?
下一篇:推斷類物件的型別