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

如何遍历对象的键,再用forEach遍历对应的值数组

实现嵌套遍历:先遍历对象键,再遍历对应数组

嗨,这事儿不难,我给你两种实用的实现方式,你可以根据自己的场景选择:

方法1:使用 Object.keys() 先获取所有键

Object.keys() 会返回对象所有可枚举属性的键组成的数组,我们先遍历这个键数组,再通过键拿到对应的对象数组进行遍历:

const example = { 
  first: [{id: 1}, {id: 2}], 
  second: [{id: 3}, {id: 4}], 
  third: [{id: 5}, {id: 6}] 
};

// 第一步:遍历对象的所有键
Object.keys(example).forEach(key => {
  console.log(`正在处理键:${key}`);
  // 第二步:遍历当前键对应的对象数组
  example[key].forEach(item => {
    console.log('数组中的对象:', item);
    // 这里可以添加你对每个数组元素的处理逻辑
  });
});

方法2:使用 Object.entries() 同时获取键和对应数组

Object.entries() 会直接返回一个包含键值对的二维数组,每一项是 [键名, 对应值],这样我们可以在遍历的时候同时拿到键和数组,代码更简洁:

const example = { 
  first: [{id: 1}, {id: 2}], 
  second: [{id: 3}, {id: 4}], 
  third: [{id: 5}, {id: 6}] 
};

// 一次遍历就拿到键和对应的数组
Object.entries(example).forEach(([key, array]) => {
  console.log(`正在处理键:${key}`);
  // 遍历当前数组
  array.forEach(item => {
    console.log('数组中的对象:', item);
    // 这里添加你的业务逻辑
  });
});

小提示

  • 如果需要兼容非常老旧的浏览器(比如IE11之前的版本),优先选方法1,因为 Object.entries() 是ES2017的特性,而 Object.keys() 从ES5就支持了。
  • 两种方法都能实现你的需求,方法2的代码更直观,少了一次对象取值的操作,推荐在现代浏览器环境下使用。

内容的提问来源于stack exchange,提问作者Gergő Horváth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:13:18