JavaScript通过for...in循环遍历对象获取指定属性值数组
实现方法
你已经通过Object.keys(itemsToBuy)拿到了商品键名数组,用for...in遍历获取价格数组的实现逻辑很简单:for...in会依次拿到对象的每一个键名,你只需要提前声明一个空数组存价格,遍历过程中通过键名取到对应商品的price属性,推入数组即可。
完整实现代码如下:
var itemsToBuy = { milk: { quantity : 5, price: 20 }, bread: { quantity : 2, price: 15 }, potato: { quantity : 3, price: 10 } } // 已实现的商品名称数组 const goodsNames = Object.keys(itemsToBuy) // 初始化空数组存储价格 const goodsPrices = [] // for...in遍历对象 for (const key in itemsToBuy) { // 追加当前商品的价格到价格数组 goodsPrices.push(itemsToBuy[key].price) } // 输出结果 console.log(goodsNames) console.log(goodsPrices)
运行后输出结果和需求完全匹配:
['milk', 'bread', 'potato'] [20, 15, 10]
补充说明:如果需要规避遍历到对象原型链上的额外属性,可以在循环内部加一层判断
if (itemsToBuy.hasOwnProperty(key)),再执行价格push操作,当前示例用字面量声明的纯对象不加该判断也能正常运行。
内容的提问来源于stack exchange,提问作者user19317459
相关产品推荐
相关产品推荐

