2016-10-11 1 views
0

У меня есть два массива caNCourbeData и caN_1CourbeData, каждый из которых содержит 12 объектов, и они имеют одинаковую структуру объектов.Итерирование объекта в массиве throws Невозможно прочитать свойство undefined

это пример объекта:

enter image description here

Так что я хочу сделать, это создать новый массив (caCourbe), который будет содержит список объектов следующим образом:

{ 
    y : '2016-01', 
    chiffreAffaireN : 1256.92, 
    chiffreAffaireN_1 : -141559.33 
} 

chiffreAffaireN от caNCourbeData[i].chiffreAffaire и chiffreAffaireN_1 от caN_1CourbeData[i].chiffreAffaire.

Так что я сделал, как следующее:

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

в моем коде я зарегистрировал caN_1CourbeData и я получаю массив в консоли, но Я не знаю, почему я получаю то, что не определено:

enter image description here

Как я могу это решить?

Edit 1:

Я пытался использовать Foreach с 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); 
}); 

, но я всегда получаю ту же ошибку, и на этот раз в этом линия: caCourbeElement.chiffreAffaireN = caNCourbeData[i].chiffreAffaire;

Edit 2:

var caNCourbeData = [{ 
    "mois": 1, 
    "nbFactures": 2, 
    "nbFacturesReglees": 1, 
    "nbdossiersRealise": 1, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 1256.92, 
    "id": 0 
}, { 
    "mois": 2, 
    "nbFactures": 4, 
    "nbFacturesReglees": 2, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 413.00, 
    "id": 1 
}, { 
    "mois": 3, 
    "nbFactures": 3, 
    "nbFacturesReglees": 3, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 30.00, 
    "id": 2 
}, { 
    "mois": 4, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "id": 3 
}, { 
    "mois": 5, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "id": 4 
}, { 
    "mois": 6, 
    "nbFactures": 9, 
    "nbFacturesReglees": 1, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 2253.31, 
    "id": 5 
}, { 
    "mois": 7, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 2, 
    "nbContratConverti": 0, 
    "id": 6 
}, { 
    "mois": 8, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "id": 7 
}, { 
    "mois": 9, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "id": 8 
}, { 
    "mois": 10, 
    "nbFactures": 2, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 450.60, 
    "id": 9 
}, { 
    "mois": 11, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "id": 10 
}, { 
    "mois": 12, 
    "nbFactures": 0, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "id": 11 
}]; 


var caN_1CourbeData = [{ 
    "mois": 1, 
    "nbFactures": 36, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 3, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": -141559.33, 
    "id": 0 
}, { 
    "mois": 2, 
    "nbFactures": 144, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 23, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 19662.80, 
    "id": 0 
}, { 
    "mois": 3, 
    "nbFactures": 39, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 10835.42, 
    "id": 0 
}, { 
    "mois": 4, 
    "nbFactures": 30, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 2, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 12166.74, 
    "id": 0 
}, { 
    "mois": 5, 
    "nbFactures": 73, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 1, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 19391.04, 
    "id": 0 
}, { 
    "mois": 6, 
    "nbFactures": 36, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 5, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 23929.57, 
    "id": 0 
}, { 
    "mois": 7, 
    "nbFactures": 24, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 1, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 5446.59, 
    "id": 0 
}, { 
    "mois": 8, 
    "nbFactures": 24, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 3019.31, 
    "id": 0 
}, { 
    "mois": 9, 
    "nbFactures": 20, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 3178.76, 
    "id": 0 
}, { 
    "mois": 10, 
    "nbFactures": 1, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 0, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 10.00, 
    "id": 0 
}, { 
    "mois": 11, 
    "nbFactures": 14, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 2, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 6020.56, 
    "id": 0 
}, { 
    "mois": 12, 
    "nbFactures": 21, 
    "nbFacturesReglees": 0, 
    "nbdossiersRealise": 6, 
    "nbContrat": 0, 
    "nbContratConverti": 0, 
    "chiffreAffaire": 4709.05, 
    "id": 0 
}]; 
+0

пожалуйста, добавьте массивы текста, а также. –

+0

Ясно, что 'caN_1CourbeData [i]' не определено, поэтому два массива не одинаковы – adeneo

+0

@NinaScholz, пожалуйста, проверьте Edit 2 –

ответ

5

изменить порядок аргументов, передаваемых на ваш Foreach обратного вызова, индекс является второй параметр, это работает в моей консоли:

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

Смежные вопросы