如何通过productId获取JavaScript对象数组中对应对象的其他属性
通过productId从对象数组中获取对应属性的方法
给你几种简单实用的方法,都是JavaScript里常用的,适合新手理解:
方法一:使用find()方法(最推荐)
find()方法会遍历数组,返回第一个符合条件的对象,刚好适配你这种通过唯一productId查找的场景:
// 定义要查找的目标productId const targetId = 2; // 查找对应商品对象 const targetProduct = products.find(product => product.productId === targetId); // 拿到对象后即可访问其他属性 if (targetProduct) { console.log('商品名称:', targetProduct.name); console.log('商品价格:', targetProduct.price); console.log('商品图片路径:', targetProduct.image); } else { console.log('未找到对应ID的商品'); }
说明:find()里的箭头函数是判断条件,只要某个对象的productId和目标ID匹配,就返回该对象。加个判断是为了避免找不到对象时调用属性报错。
方法二:使用filter()方法
filter()会返回所有符合条件的对象组成的数组,若你的productId是唯一的,取数组第一个元素即可:
const targetId = 3; const matchedProducts = products.filter(product => product.productId === targetId); if (matchedProducts.length > 0) { const targetProduct = matchedProducts[0]; console.log('商品名称:', targetProduct.name); console.log('商品数量:', targetProduct.quantity); } else { console.log('未找到对应ID的商品'); }
方法三:使用普通for循环(适合理解底层逻辑)
如果想搞清楚遍历的具体过程,用for循环会更直观:
const targetId = 1; let targetProduct = null; for (let i = 0; i < products.length; i++) { if (products[i].productId === targetId) { targetProduct = products[i]; break; // 找到目标后跳出循环,减少不必要的遍历 } } if (targetProduct) { console.log('商品价格:', targetProduct.price); console.log('商品图片路径:', targetProduct.image); } else { console.log('未找到对应ID的商品'); }
内容的提问来源于stack exchange,提问作者Rohan Asif
相关产品推荐
相关产品推荐

