Javascript 展平具有嵌套在其特性中的阵列的对象阵列

Javascript 展平具有嵌套在其特性中的阵列的对象阵列,javascript,arrays,object,data-structures,Javascript,Arrays,Object,Data Structures,目前,我有一个数组,其中包含我的衣服(虚拟数据): 如您所见,该数组包含对象(衬衫、裤子、袜子),这些对象按类型将衣服分开。现在,我可以用javascript做什么来创建一个新的数组,如下所示? 因此,如果所有的衣服/裤子/袜子都没有经过处理,那么它应该显示出我有多少品牌的商品 allPiecesUnseperated = [ { brand: 'patagonia', quantity: 6, }, { brand: 'h

目前,我有一个数组,其中包含我的衣服(虚拟数据):

如您所见,该数组包含对象(衬衫、裤子、袜子),这些对象按类型将衣服分开。现在,我可以用javascript做什么来创建一个新的数组,如下所示? 因此,如果所有的衣服/裤子/袜子都没有经过处理,那么它应该显示出我有多少品牌的商品

allPiecesUnseperated = [
    {
        brand: 'patagonia',
        quantity: 6,
    },
    {
        brand: 'hugo boss',
        quantity: 3,
    },
    {
        brand: 'jack & jones',
        quantity: 2,
    },
    {
        brand: 'zara',
        quantity: 4,
    },
    {
        brand: 'versace',
        quantity: 1,
    },  
    {
        brand: 'no-name',
        quantity: 12,
    },          
];
使用
.flatMap()
函数

const mycosts=[
{
类型:“衬衫”,
作品:[
{品牌:巴塔哥尼亚,数量:6},
{品牌:'hugo boss',数量:3}
]
},
{
类型:'裤子',
作品:[
{品牌:'jack&jones',数量:2},
{品牌:'zara',数量:4,},
{品牌:“范思哲”,数量:1}
]
},
{
类型:'袜子',
作品:[
{品牌:'无名称',数量:12},
]
}  
];
const output=mycosts.flatMap(o=>o.pieces);
控制台日志(输出)
.as控制台包装{最大高度:100%!重要;顶部:0;}
使用
.flatMap()
函数

const mycosts=[
{
类型:“衬衫”,
作品:[
{品牌:巴塔哥尼亚,数量:6},
{品牌:'hugo boss',数量:3}
]
},
{
类型:'裤子',
作品:[
{品牌:'jack&jones',数量:2},
{品牌:'zara',数量:4,},
{品牌:“范思哲”,数量:1}
]
},
{
类型:'袜子',
作品:[
{品牌:'无名称',数量:12},
]
}  
];
const output=mycosts.flatMap(o=>o.pieces);
控制台日志(输出)
.as控制台包装{最大高度:100%!重要;顶部:0;}
const衣服=[{
类型:“衬衫”,
作品:[{
品牌:“巴塔哥尼亚”,
数量:6,
},
{
品牌:“雨果老板”,
数量:3,
},
],
},
{
类型:'裤子',
作品:[{
品牌:“杰克和琼斯”,
数量:2,
},
{
品牌:“zara”,
数量:4,
},
{
品牌:“范思哲”,
数量:1,
},
],
},
{
类型:'袜子',
作品:[{
品牌:“没有名字”,
数量:12,
}, ],
},
];
const result=costs.map(({
件
})=>件)。减少((acc,arr)=>[…acc,…arr]);
控制台日志(结果)
const衣服=[{
类型:“衬衫”,
作品:[{
品牌:“巴塔哥尼亚”,
数量:6,
},
{
品牌:“雨果老板”,
数量:3,
},
],
},
{
类型:'裤子',
作品:[{
品牌:“杰克和琼斯”,
数量:2,
},
{
品牌:“zara”,
数量:4,
},
{
品牌:“范思哲”,
数量:1,
},
],
},
{
类型:'袜子',
作品:[{
品牌:“没有名字”,
数量:12,
}, ],
},
];
const result=costs.map(({
件
})=>件)。减少((acc,arr)=>[…acc,…arr]);

控制台日志(结果)可能不是最有效的(因为每次调用concat时都会创建一个新的数组)或最优雅的解决方案,但应该完成这项工作

var all = []
myClothes.forEach((item) => {
    all = all.concat(item.pieces)
})

可能不是最有效的(因为concat每次调用时都会创建一个新数组)或最优雅的解决方案,但应该完成这项工作

var all = []
myClothes.forEach((item) => {
    all = all.concat(item.pieces)
})

@YevgenGorbunkov谢谢,先生。是的,在这一次,压扁完全是我想要的。但我虚构的数据示例不是最好的,可能有点误导。但无论如何,我真的很感谢你对我的帖子的回复@YevgenGorbunkov谢谢,先生。是的,在这一次,压扁完全是我想要的。但我虚构的数据示例不是最好的,可能有点误导。但无论如何,我真的很感谢你对我的帖子的回复!