如何循环数组内的许多对象来收集一个特定的项目?



我有这个对象:

data: [
{
name: bed,
price: [
{
id: 2,
color: red
},
{
id: 4,
color: blue
}
]
},
{
name: lego,
price: [
{
id: 5,
color: red
},
{
id: 6,
color: blue
}
]
},
{
name: mouse,
price: [
{
id: 7,
color: red
},
{
id: 9,
color: blue
}
]
}
]

我想像这样收集每个对象的id价格:

ids: [ [ 2, 4 ], [ 5, 6 ], [ 7, 9 ] ]

我试过这个,但是它不工作:

ids() {
const datas = this.data;
let idPrices = null;
let prices = [];

for (let priceId in datas) {
prices.push(priceId.price);
}

idPrices = prices.map((prices) => prices.map((price) => price.id));

return idPrices;
}

使用Array.map:

const data=[{name:"bed",price:[{id:2,color:"red"},{id:4,color:"blue"}]},{name:"lego",price:[{id:5,color:"red"},{id:6,color:"blue"}]},{name:"mouse",price:[{id:7,color:"red"},{id:9,color:"blue"}]}];
const ids = data.map(e => e.price.map(f => f.id));
console.log(ids);

也许这个对你有帮助?我认为有可能做得更简单,但这是我在凌晨1:30能做的最好的事情。:)

const data = [
{name: 'bed', price:[{id: 2 ,color: 'red'}, {id: 4, color: 'blue'}]},
{name: 'lego', price:[{id: 5 ,color: 'red'}, {id: 6, color:'blue'}]},
{name: 'mouse', price:[{id: 7 ,color: 'red'}, {id: 9, color: 'blue'}]}
]


let idPrices = [];
for (const i in data) {
let prices = [];
for (const j in data[i].price) {
prices.push(data[i].price[j].id)
}
idPrices.push(prices)
}
console.log(idPrices);

最新更新