如何遍历数组中多组对象的所有键并提取每组所有id组成新数组
问题原因
你编写的代码存在两层逻辑缺失:
arrayDatas的每一项是包含多个对象的子数组,不是单个对象,直接取val.id无法获取到值- 你没有对子数组做二次遍历提取所有id,只能拿到第一层的索引和对应的子数组本身
你贴出的原始数组语法不符合JS规范,实际运行会报错,修正后的合法结构如下:
const arrayDatas = [ [{id:234, name: 'eric'},{id:235, name: 'thomas'},{id:236, name: 'louvin'}], [{id:230, name: 'jason'},{id:233, name: 'lois'},{id:238, name: 'serge'},{id:237, name: 'natasha'},{id:236, name: 'berthe'}] ]
实现代码
如果你需要输出你期望的键值对结构:
function products() { const result = {} arrayDatas.forEach((childArray, index) => { result[index] = childArray.map(item => item.id) }) return result }
调用后输出结果和你要求的完全一致:
0: [234, 235, 236], 1: [230, 233, 238, 237, 236]
如果你只需要数组格式的结果,可以简化为:
function products() { return arrayDatas.map(childArray => childArray.map(item => item.id)) } // 输出:[[234, 235, 236], [230, 233, 238, 237, 236]]
内容的提问来源于stack exchange,提问作者francky
相关产品推荐
相关产品推荐

