迭代数组中的对象throws无法读取undefined的属性

时间:2016-10-11 17:41:07

标签: javascript

我有两个数组caNCourbeDatacaN_1CourbeData,每个数组包含12个对象,它们具有相同的对象结构。

这是一个对象的例子:

enter image description here

所以我想做的是创建一个新数组(caCourbe),其中包含一个对象列表如下:

{
   y : '2016-01',
   chiffreAffaireN : 1256.92,
   chiffreAffaireN_1 : -141559.33
}
来自chiffreAffaireN的{​​p> caNCourbeData[i].chiffreAffaire和来自chiffreAffaireN_1的{​​{1}}。

所以我做了如下:

caN_1CourbeData[i].chiffreAffaire

然后我收到了这个错误:

enter image description here

在我的代码中我记录了var caCourbe = new Array(); caNCourbeData.forEach(function(i, caNCourbeDataElement){ caCourbeElement = new Object(); caCourbeElement.y = '2016-'+(i+1).toLocaleString(undefined, {minimumIntegerDigits: 2, useGrouping:false}); caCourbeElement.chiffreAffaireN = caNCourbeDataElement.chiffreAffaire; caCourbeElement.chiffreAffaireN_1 = caN_1CourbeData[i].chiffreAffaire; caCourbe.push(caCourbeElement); }); 并且我在控制台中获得了数组,但我不知道为什么我得到的是未定义的:

enter image description here

我该如何解决这个问题?

编辑1:

我尝试将forEach与caN_1CourbeData而不是caN_1CourbeData一起使用,因为它们具有与以下相同的长度:

caNCourbeData

但我总是得到同样的错误,这一次是在这一行:caN_1CourbeData.forEach(function(i, caN_1CourbeDataElement){ caCourbeElement = new Object(); caCourbeElement.y = '2016-'+(i+1).toLocaleString(undefined, {minimumIntegerDigits: 2, useGrouping:false}); caCourbeElement.chiffreAffaireN = caNCourbeData[i].chiffreAffaire; caCourbeElement.chiffreAffaireN_1 = caN_1CourbeDataElement.chiffreAffaire; caCourbe.push(caCourbeElement); });

编辑2:

caCourbeElement.chiffreAffaireN = caNCourbeData[i].chiffreAffaire;

1 个答案:

答案 0 :(得分:5)

切换传递给forEach回调的参数的顺序,index是第二个参数,这在我的控制台中有效:

caN_1CourbeData.forEach(function(caN_1CourbeDataElement, i){
    caCourbeElement = new Object();
    caCourbeElement.y = '2016-'+(i+1).toLocaleString(undefined, {minimumIntegerDigits: 2, useGrouping:false});
    caCourbeElement.chiffreAffaireN = caNCourbeData[i].chiffreAffaire;
    caCourbeElement.chiffreAffaireN_1 = caN_1CourbeDataElement.chiffreAffaire;
    caCourbe.push(caCourbeElement); 
});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Parameters