[英]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.