如何遍历{item number: quantity}格式对象,分别访问项编号与数量?
嘿,这个问题我太熟悉了!你说的这种键值对结构的对象,在JavaScript里有好几种实用的遍历方式,能轻松分别拿到item number(对象的键)和quantity(对应的值),我给你详细说说:
方法1:用
Object.keys()先拿键,再取对应值 这个方法先提取出所有的item编号,再逐个去对象里找对应的数量,逻辑很清晰:
// 假设你的变量是这样的 const inventory = { "item001": 12, "item002": 8, "item003": 20 }; // 获取所有item编号(对象的键) const itemIds = Object.keys(inventory); // 遍历每个编号,获取对应数量 itemIds.forEach(itemId => { const quantity = inventory[itemId]; console.log(`Item编号:${itemId},库存数量:${quantity}`); });
方法2:
Object.entries()直接获取键值对(最推荐!) 这个方法一步到位,直接把对象转换成[键, 值]形式的数组,遍历的时候能同时拿到item number和quantity,代码最简洁:
const inventory = { "item001": 12, "item002": 8, "item003": 20 }; // 用for...of循环遍历 for (const [itemId, quantity] of Object.entries(inventory)) { console.log(`Item编号:${itemId},库存数量:${quantity}`); } // 或者用forEach的写法 Object.entries(inventory).forEach(([itemId, quantity]) => { console.log(`Item编号:${itemId},库存数量:${quantity}`); });
方法3:传统
for...in循环(记得加属性检查) 如果你习惯用老一点的写法,for...in也能行,但要注意它会遍历对象原型链上的属性,所以最好加上hasOwnProperty检查,确保只处理你自己定义的item:
const inventory = { "item001": 12, "item002": 8, "item003": 20 }; for (const itemId in inventory) { // 只处理对象自身的属性,避免意外拿到原型链上的内容 if (inventory.hasOwnProperty(itemId)) { const quantity = inventory[itemId]; console.log(`Item编号:${itemId},库存数量:${quantity}`); } }
总的来说,Object.entries()是最省心的选择,代码少还不容易出错~
内容的提问来源于stack exchange,提问作者chris cozzens
相关产品推荐
相关产品推荐

