在数组中循环2个级别并记录父项和子项?

时间:2017-09-28 17:31:06

标签: javascript

我有基于密钥的数组:

const selected = {
  1: [a, b, c],
  2: [d, e, f]
}

我需要遍历第二级中的每个项目并打印其父级。所以我需要输出像:

1a
1b
1c
2d
2e
3f

我已经走得很远了。下面记录整个对象,但我希望它能在' 1'上运行。和' 2'

Array.of(selected).forEach((item)=>{
  console.log(item)
});

我使用babel非常乐意使用ES6作为解决方案。

2 个答案:

答案 0 :(得分:0)

Object.entries()很棒:

const selected = {
  1: ['a', 'b', 'c'],
  2: ['d', 'e', 'f']
};
Object.entries(selected).forEach(([key, value]) => {
  value.forEach(v => console.log(key + v));
});

答案 1 :(得分:0)

您需要的只是Object.entries .forEach()和嵌套循环。

const selected = {
  1: ['a', 'b', 'c'],
  2: ['d', 'e', 'f']
};
Object.entries(selected)
  .forEach(([key, arr]) => arr.forEach(v => console.log(key + v)));

如果你有一个Array.fromArray.of可以代替.length,但你有一个稀疏数组。

const selected = {
  1: ['a', 'b', 'c'],
  2: ['d', 'e', 'f'],
  length: 3,
};
Array.from(selected)
   .forEach((arr, i) => arr && arr.forEach(v => console.log(i + v)));