#javascript
#javascript
Вопрос:
У меня есть два массива caNCourbeData
, и caN_1CourbeData
каждый из них содержит 12 объектов, и они имеют одинаковую структуру объекта.
это пример объекта :
Итак, что я хочу сделать, это создать новый array ( 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);
});
но затем я получаю эту ошибку :
в моем коде я зарегистрировался caN_1CourbeData
и получаю массив в консоли, но я не знаю, почему я получаю это значение undefined :
Как я могу это решить?
Редактировать 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;
Редактировать 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
}];
Комментарии:
1. пожалуйста, добавьте массивы также в виде текста.
2. Явно
caN_1CourbeData[i]
не определено, поэтому два массива не совпадают3. @NinaScholz пожалуйста, проверьте редактирование 2
4. @adeneo пожалуйста, проверьте редактирование 2
5. Простой
console.log(i)
сказал бы вам, что не так.
Ответ №1:
измените порядок аргументов, передаваемых вашему обратному вызову 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);
});