循环的Javascript?

循环的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

我的for循环有问题。出于某种原因,data_series_1中的所有元素都只是映射到最后一次迭代。有人能帮忙吗

澄清-以下是输入/输出:

数据_系列_1={}

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];
    };
});