我有兩個陣列,每個陣列都有物件。我怎樣才能簡化將兩個物件添加到一個新的串列中,例如
。a = [{a: 1, b:2, c: 3}, {d:1, e: 4, f:2}
b = [{m:1, n:2, o: 4}, {r:1,s: 3,u:5}, {k: 1,j:4,f:8}]
z = [{a:1, b: 2, c:3, m: 1, n:2, o: 4}, {d:1, e: 4, f:2, r: 1,s:3,u。 5}, {k:1,j: 4,f:8}]
假設你有串列a和b,我想在串列z中把每個位置的物件加在一起。
uj5u.com熱心網友回復:
你可以用這樣的方式合并這兩個物件:
let a = [{a: 1, b:2, c: 3}, {d:1, e: 4, f:2}]
let b = [{m: 1, n: 2, o:4}, {r:1,s: 3,u:5}, {k: 1,j:4,f:8}]
let z = [];
b.forEach((x, i) =>/span> {
let merged = {...x, ...a[i]};
z.push(merged)
})
console.log(z);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
我會超過a和b的最大長度,并使用Object.assign來復制這些值。假設你想對任何兩個陣列有一個通用的解決方案,其中任何一個陣列都可以比另一個陣列長,注意你需要邊走邊檢查長度:
z = [];
for (let i = 0; i < Math. max(a.length, b.length); i) {
const result = i < a.length ? a[i] : {};
Object.assign(result, i < b.length ? b[i] : {})
z.push(結果)。
}
uj5u.com熱心網友回復:
試試這個 :
。const a = [{a: 1, b:2, c: 3}, {d:1, e: 4, f:2}。
const b = [{m:1, n: 2, o:4}, {r:1,s: 3,u:5}, {k: 1,j:4,f:8}] 。
let c = [];
if(a.length > b.length){
c = a.map((e,i) => {
return {
...e,
...b[i]
}
});
}else{
c = b.map((e,i) => {
return {
...e,
...a[i]
}
});
}
console.log(c);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
你可以先檢查兩個陣列的長度,然后將它們合并。
。const a = [{ a: 1, b: 2, c: 3 }, { d: 1, e: 4, f: 2 }]
const b = [{ m: 1, n: 2, o: 4 }, { r: 1, s: 3, u: 5 }, { k: 1, j: 4, f: 8 }]
const mergeArrays = (arr1, arr2) => arr1. map((x, i) => ({ ...x, ... arr2[i] })
const z = a.length > b.length ? mergeArrays(a, b) : mergeArrays(b, a)。
console.log(z);
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
邏輯
a和b回傳資料。
。
const a = [{ a: 1, b: 2, c: 3 }, { d: 1, e: 4, f: 2 }]
const b = [{ m: 1, n: 2, o: 4 }, { r: 1, s: 3, u: 5 }, { k: 1, j: 4, f: 8 }]。
const z = Array.from({ length。Math.max(a.length, b.length) }, (_, index) => ({ ...a[index] , ...b[index] })。
console.log(z);
<iframe name="sif4" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329133.html
標籤:
