我想知道如何在foreach中创建一个对象?没有在这里发布我的所有代码,在我的情况下,我不能在foreach之外声明对象(使用react和做那个洞察我的渲染函数导致奇怪的结果)。我怎样才能做到这一点?谢谢!
var list;
this.state.resp.forEach(function(e) {
list[e.OriginLocation.AirportCode] = e.OriginLocation.CityName;
});
答案 0 :(得分:2)
您可以使用其他数组函数,例如reduce
,如:
this.state.resp.reduce(function(list, e) {
list[e.OriginLocation.AirportCode] = e.OriginLocation.CityName;
return list;
}, {});
然后 reduce
将返回您可以使用或直接返回的累积列表(如果需要,不会将其分配给变量)。
答案 1 :(得分:1)
你可以在forEach
:
whatever.forEach(function(e) {
var list[e.OriginLocation.AirportCode] = e.OriginLocation.CityName;
});
但当list
完成时,您将丢失对象的引用(名为forEach
)。引用存储在调用堆栈中(当对forEach
的调用返回时将丢失)并且对象本身存储在堆上。
该对象仍将存在于内存中,但您不会对其进行引用。
有用的阅读:
http://cslibrary.stanford.edu/102/PointersAndMemory.pdf