基于过滤器查找嵌套对象属性值
请建议识别给定物品id为03的获取名称的最佳方法。
const product = products.find(product => product.items.some(item => item.id === '03'));
给出了产品,但必须再次循环才能找到名称?
const products = [
{
id: 'p1',
items: [
{
id: 01,
name: 'iphone'
},
{
id: 02,
name: 'samsung'
},
{
id: 03,
name: 'oneplus'
}
]
},
{
id: 'p2',
items: [
{
id: 04,
name: 'nokia'
},
{
id: 05,
name: 'nexus'
},
{
id: 06,
name: 'phone3'
}
]
}
]
}
]
发布于 2018-08-08 02:24:55
我会这样做:
const product = products
.reduce((acc, product) => {
return [...acc, ...product.items];
}, [])
.find(item => item.id === "03");
const productName = product && product.name;
console.log(productName); // oneplus
https://stackoverflow.com/questions/51733078
复制相似问题