You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历{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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:18:02