在循环中从以前的数组值创建新数组

时间:2019-08-01 16:56:10

标签: javascript arrays reactjs

我有一个称为组的字符串数组,我正在使用forEach循环遍历,我想要做的是创建一个新数组,其中每个字符串都是它的名称。

我试图用let [group] = []创建数组,但是给出的标识符组已经被声明为错误。任何帮助表示赞赏

代码:

let groups = ['a','b','c']
//forEach loop creates an array for each string in groups
groups.forEach(group => {
            let [group] = []
            //Adding things to new array here
        })
//Each new array from groups is added to an object/array that is returned by the function

2 个答案:

答案 0 :(得分:2)

不要使用forEach,reduce适用于数组->对象转换:

const myGroups = groups.reduce((acc, group) => {
  let arr = [];
  // add stuff here
  return Object.assign({}, acc, {[group]: arr});
}, {});

这将为您提供一个对象,其中“组”值是键,而您创建的任何数组都是值。如果同一组值出现多次,则较早的值将被覆盖。

答案 1 :(得分:0)

示例代码:

a = ['a', 'b', 'c'];
b = {};
a.forEach( x => {
    b[x] = [];
});
console.log(b);