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

Javascript 从循环中以前的数组值创建新数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有一个名为groups的字符串数组,我正在使用forEach循环,我要做的是创建一个新数组,其中每个字符串都是它的名称 我曾尝试使用let[group]=[]创建数组,但该数组提供的标识符组已声明为错误。谢谢你的帮助 代码: 不要使用forEach,reduce适用于数组->对象变换: const myGroups = groups.reduce((acc, group) => { let arr = []; // add stuff here return Object.a

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

我曾尝试使用
let[group]=[]
创建数组,但该数组提供的标识符组已声明为错误。谢谢你的帮助

代码:


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

const myGroups = groups.reduce((acc, group) => {
  let arr = [];
  // add stuff here
  return Object.assign({}, acc, {[group]: arr});
}, {});
这将为您提供一个对象,其中“组”值是键,您创建的任何数组都是值。如果同一组值多次出现,则先前的值将被覆盖。

示例代码:

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

你有一些数据和想要的结果吗?为什么不获取一个对象?@NinaScholz一些基本数据将是组包含类似['a'、'b'、'c']的内容,之后将有三个名为a、b和chow的数组。您想访问这些数组吗?创建
三个名为a、b和c的数组之后,您是否要像javascript变量一样访问它?如果是,那就不是了possible@NinaScholz你这到底是什么意思?我不确定我是否理解这个问题,您可以只做
acc[group]=[];返回acc
而不是
让arr=[];返回Object.assign(acc,{[group]:arr})避免变异的方法是最好的习惯constantly@bryan60但是
Object.assign
是一种变异方法吗
Object.assign({},acc,{[group]:arr})
不会对accI进行变异,accI的意思是将前面的
{}
放入,fxed now
a = ['a', 'b', 'c'];
b = {};
a.forEach( x => {
    b[x] = [];
});
console.log(b);