所以基本上就是我拥有的,按预期工作 -
let newList: any[] = [];
for (let stuff of this.Stuff) {
newList = newList.concat(stuff.food);
}
所以基本上Stuff是一个对象数组,其中每个对象都有一个属性,它是另一个叫做food的对象。我想通过这个Stuff数组并创建一个包含每个食物实例的新数组。
我不认为我这样做的方式很糟糕,我只是想知道如果没有for循环,有人会如何做到这一点。
干杯。
答案 0 :(得分:2)
您正在寻找map
method:
const newList = this.Stuff.map(stuff => stuff.food);
您不应该对变量使用连续重新分配,并且它肯定不起作用:-)而且,反复使用concat
非常低效,您最好拥有在push
循环中使用了for…of
。但是map
仍然更简单,更好。
答案 1 :(得分:0)
使用reduce方法
尝试此方法
var arr = [[1,2,3],[4,5,6],[7,8,9]];
var output = arr.reduce( function ( prev, curr ){ return prev.concat( curr ) } );
console.log(output);

答案 2 :(得分:0)
您可以使用添加的功能原语
来表达这一点const prop = x => y => y[x];
const newList = this.Stuff.map(prop('food'));