有兩個陣列,如下所示。
const arrayA = {
0: {
id: XXXXXXX,
name: "test"
},
1: {
id: YYYYYYY,
name: "example"
}
}
const arrayB = {
0: {
id: XXXXXXX,
category: "sea",
}
1: {
id: YYYYYYY,
category: "mountain"
}
}
我想通過每個 id 將這兩個陣列組合成一個陣列,如下所示:
array C = {
0: {
id: XXXXXXX,
name: "test",
category: "sea",
},
1: {
id: YYYYYYY,
name: "example",
category: "mountain"
}
}
最聰明的方法是什么?
uj5u.com熱心網友回復:
實際上,沒有陣列,而是具有索引之類的鍵的物件。您可以Object.keys用于迭代并通過物件通過鍵合并它們。
const arrayA = {
"0": {
id: 0,
name: "test"
},
"1": {
id: 1,
name: "example"
}
}
const arrayB = {
"0": {
id: 0,
category: "sea",
},
"1": {
id: 1,
category: "mountain"
}
}
const arrayC = {}
for(const key of Object.keys(arrayA)) {
arrayC[key] = {
...arrayA[key],
...arrayB[key],
}
}
console.log(arrayC)
您也可以使用reduce而不是通常的迭代
const arrayA = {
"0": {
id: 0,
name: "test"
},
"1": {
id: 1,
name: "example"
}
}
const arrayB = {
"0": {
id: 0,
category: "sea",
},
"1": {
id: 1,
category: "mountain"
}
}
const arrayC = Object.keys(arrayA).reduce((result, key) => ({
...result,
[key]: {
...arrayA[key],
...arrayB[key]
}
}), {})
console.log(arrayC)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471280.html
標籤:javascript 反应 打字稿
上一篇:如何指定無限生成器的型別?
