[英]Merge objects inside arrays, which are inside an array
目前我有一個小問題,我不太能夠解決。 我有一個數組,它可以包含單個或多個 arrays,它可以包含多個對象。 例如:
const arr = [
[
{
"value": "value A"
},
{
"value": "value B"
},
{
"value": "value C"
}
],
[
{
"value": "value A"
},
{
"value": "value B"
},
{
"value": "value C"
}
]
]
我想將基於特定屬性(此處為“值”)的對象合並到一個數組中,這樣我的結果將如下所示:
const result = ["value A", "value B", "value C", "value A", "value B", "value C"]
有人對此有想法嗎? 謝謝!
const arr = [ [ { "value": "value A" }, { "value": "value B" }, { "value": "value C" } ], [ { "value": "value A" }, { "value": "value B" }, { "value": "value C" } ] ] let x = arr.flat().map(v=>v.value); console.log(x);
我相信你想要的結果是一個數組,而不是 object。 您的 output 示例無效。
無論如何,使用簡單的減少:
const arr = [ [ { "value": "value A" }, { "value": "value B" }, { "value": "value C" } ], [ { "value": "value A" }, { "value": "value B" }, { "value": "value C" } ] ] const result = arr.reduce((acc, cur) => { const values = cur.map(({value}) => value); return acc.concat(values) }, []); console.log(result);
像這樣?
const arr = [
[
{
"value": "value A"
},
{
"value": "value B"
},
{
"value": "value C"
}
],
[
{
"value": "value A"
},
{
"value": "value B"
},
{
"value": "value C"
}
]
]
function mergeArray( arr, property ) {
const res = [];
for (const innerArr of arr) {
for (const obj of innerArr) {
res.push(obj[property]);
}
}
return res;
}
console.log(mergeArray(arr, "value"));
我使用 Array.prototype 的嵌套 reduce 和 map 方法
{ const arr = [ [{ "value": "value A" }, { "value": "value B" }, { "value": "value C" } ], [{ "value": "value A" }, { "value": "value B" }, { "value": "value C" } ] ]; const newArr = arr.reduce((carry, item) => { carry.push(...item.map(item2 => item2.value)) return carry; }, []) console.log(newArr) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.