如何遍历对象的键,再用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
相关产品推荐
相关产品推荐

