Я пытался передать sh массив из 3 значений в массив для создания AOA. Однако мой ожидаемый результат не получается правильным.
Входные данные выглядят примерно так:
[
{id:xxxxx,
date:VALUE,
date:VALUE,
..months worth
},
{id:xxxx2,
date:VALUE,
date:VALUE,
..months worth
},
..loads of entries
]
, пожалуйста, посмотрите фрагмент кода ниже.
arrayOfObjects.forEach(e =>{
let entry = [];
entry[0] = e.id;
let PC = Object.values(e)
let Dates = Object.keys(e)
PC.shift();
Dates.shift();
for(let i = 0; i <PC.length; i++){
if(PC[i] === 'No Data'){
entry[2] = 0;
entry[1] = Dates[i];
} else {
entry[2] = PC[i];
entry[1] = Dates[i];
}
finalArray.push(entry);
}
})
Я получаю массив выходных данных, которые содержат stati c date
[
...
[ 'NAAAAD', '10/31/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
...
]
Когда я хочу увидеть приращение даты.
[
...
[ 'NAAAAD', '10/25/19', 0 ],
[ 'NAAAAD', '10/26/19', 0 ],
[ 'NAAAAD', '10/27/19', 0 ],
[ 'NAAAAD', '10/28/19', 0 ],
[ 'NAAAAD', '10/29/19', 0 ],
[ 'NAAAAD', '10/30/19', 0 ],
[ 'NAAAAD', '10/31/19', 0 ],
...
]
У меня есть console.log(entry)
как раз перед тем, как он будет помещен в массив, и в этот момент у меня есть правильная информация? Я переместил finalArray.push(entry)
в оператор if непосредственно под строкой, в которой ввод правильный.
Что здесь происходит? Я не могу найти ничего подобного, я рассмотрел область действия переменных, но все они кажутся правильными.
Спасибо
Райан