循环的Javascript?
我的for循环有问题。出于某种原因,data_series_1中的所有元素都只是映射到最后一次迭代。有人能帮忙吗 澄清-以下是输入/输出: 数据_系列_1={}循环的Javascript?,javascript,Javascript,我的for循环有问题。出于某种原因,data_series_1中的所有元素都只是映射到最后一次迭代。有人能帮忙吗 澄清-以下是输入/输出: 数据_系列_1={} flights.forEach(function(flight) { var origin = flight.origin, destination = flight.destination, count_airport = +flight.count, var z = ""; for (i
flights.forEach(function(flight) {
var origin = flight.origin,
destination = flight.destination,
count_airport = +flight.count,
var z = "";
for (i in ListByAirline) {
z = i + '_count';
ListByAirline[i] = flight[z];
};
data_series_1[origin] = ListByAirline;
});
飞行数据如下所示:
ListByAirline = {
'AA' : [],
'AS' : [],
'B6' : [],
'DL' : [],
'EV' : [],
'F9' : [],
'MQ' : [],
'OO' : [],
'UA' : [],
'US' : [],
'VX' : [],
'WN' : []
};
数据_系列_1的输出为:
0: Object AA_cancelled: "" AA_count: "" and so on...
对于每个原点(键)…因此它不会在整个过程中迭代并为所有键分配正确的值您有一个单独的ListByAirline对象,您在每次迭代中都会更新该对象,但每个
数据系列\u 1[原点]
都引用相同的ListByAirline
对象
像这样的事情可能是你想要做的
ALB: Object AA: "" AS: "" B6: "" DL: "" EV: "" F9: "3" MQ: "" OO: ""
UA: "" US: "" VX: "" WN: ""
在这个场景中,ListByAirline对象只是查找data_series_1中使用的键,因此。。。在中,循环可以以不同的方式完成,可能是这样
flights.forEach(function(flight) {
var origin = flight.origin,
destination = flight.destination,
count_airport = +flight.count
var z = "";
var dest = data_series_1[origin] = {};
for (i in ListByAirline) {
z = i + '_count';
dest[i] = flight[z];
};
});
ListByAirline
以上未定义请参见任何情况下的“问题”都不清楚,尽管我可以根据“全部”的读数想出至少两种不同的解释。。你只是。。映射到上一次迭代'。创建最小SSCCE-包括最小输入和最小(错误)输出。要考虑的是:数组的分配不会创建副本/克隆/重复。它是定义的(不包括在本部分中)。是!这管用!非常感谢你!
ListByAirline = ['AA','DL']; // a list of keys in an array
flights.forEach(function(flight) {
var origin = flight.origin,
destination = flight.destination,
count_airport = +flight.count
var z = "";
var dest = data_series_1[origin] = {};
ListByAirline.forEach(airline) { // changed this to a forEach
z = airline + '_count';
dest[airline] = flight[z];
};
});