我有对象的数组。
let data = [
{
"categories" : [
{
"products" : [
{
"name" : "Product 1"
}
],
"id" : 1369
}
]
}
];
我想像这样重建它:
let data = [
{
"products" : [
{
"name" : "Product 1"
}
],
"id" : 1369
}
];
如果我使用.map(),则会得到带有对象的数组:
let data = [
[
{
"products" : [
{
"name" : "Product 1"
}
],
"id" : 1369
}
]
];
在这种情况下,我必须采用什么解决方案?
最佳答案
在使用Array.map()
将spreading展平为Array.concat()
之后:
const data = [{"categories":[{"products":[{"name":"Product 1"}],"id":1369}]}];
const result = [].concat(...data.map(o => o.categories));
console.log(result);
或将
Array.reduce()
与Array.concat()
一起使用:const data = [{"categories":[{"products":[{"name":"Product 1"}],"id":1369}]}];
const result = data.reduce((r, o) => r.concat(o.categories), []);
console.log(result);