javascript - 如果数组包含具有给定条件的对象,则通过检查其对象数组来查找对象数组中的对象
问题描述
给定一系列产品类别的对象,如下所示:
[{
id: 1,
name: "A",
products: [{
id: 1,
price: 1
}]
},
{
id: 2,
name: "B",
products: [{
id: 2,
price: 1
}]
}
]
请帮助我使用产品ID返回类别名称的功能。我已经尝试过,但无论我输入了哪个产品 ID,即使是不存在的产品 ID,我的结果总是返回“A”。这是我到目前为止所尝试的:
const populate = function(productID) {
// main code here
return categories.find(x => {
let products = x.product;
console.log(products.find(e => e.id = productID));
if (products.find(e => e.id = productID) != undefined) return true;
return false;
}).name;
}
我一直在寻找任何地方,但我的问题没有任何答案。
解决方案
1)获取products
(您可以使用解构)并循环获取id
等于的产品productID
。
2)您可能无法找到该产品,那么您也应该处理该案例。为此,您可以使用可选链接
您也可以将其设为单线
const populate = (productID) => categories.find(({ products }) => products.find(({ id }) => id === productID))?.name;
const categories = [
{
id: 1,
name: "A",
products: [
{
id: 1,
price: 1,
},
],
},
{
id: 2,
name: "B",
products: [
{
id: 2,
price: 1,
},
],
},
];
const populate = function (productID) {
return categories.find(({ products }) => {
return products.find(({ id }) => id === productID);
})?.name;
};
console.log(populate(2));
推荐阅读
- c# - 如何将相同的 var 类型变量分配给不同的 linq to sql 结果集?
- angular - 角度延迟加载模块问题
- javascript - 带有 html 实体的解码字符串不等于字符串文字
- python - 为什么即使我已将 python 命令添加到我的路径中,它也不起作用?
- php - 在 prestashop 中禁用商店页面
- javascript - 具有真实比例的 chart.js 时间散点图
- javascript - 我应该如何在 Promise 中初始化 WS 并在它之外使用它?
- ios - 如何在 Objective-C 中不旋转的视图控制器中检测设备的真实方向?
- symfony - Symfony memcached 适配器需要使用 cache.app 的 AbstractAdapter
- amazon-web-services - EC2 实例无权下载文件