Может ли кто-нибудь объяснить, почему конечный результат одинаков в разных применениях функции array.reduce ()?
В первом случае выборочный массив сокращается напрямую, тогда как во втором примере выборочный массивСначала массив переворачивается, а затем уменьшается.
var array = [{
"Id": "1",
"Week": "2019-01-13"
},
{
"Id": "2",
"Week": "2019-01-20"
},
{
"Id": "3",
"Week": "2019-01-27"
}
];
array.reduce(function (acc, curr) {
acc[curr.Id] = curr.Week;
console.log(acc);
return acc;
}, {});
//Output
/*{ "1": "2019-01-13" }
{ "1": "2019-01-13", "2": "2019-01-20" }
{ "1": "2019-01-13", "2": "2019-01-20", "3": "2019-01-27" }*/
array.reverse().reduce(function (acc, curr) {
acc[curr.Id] = curr.Week;
console.log(acc);
return acc;
}, {});
//Output
/*{ "3": "2019-01-27" }
{ "2": "2019-01-20", "3": "2019-01-27" }
{ "1": "2019-01-13", "2": "2019-01-20", "3": "2019-01-27" }
*/
Я бы хотел, чтобы выходные данные отображались как {"3": "2019-01-27", "2": "2019-01-20",«1»: «2019-01-13»}.
Если я использую нечисловые клавиши, выходные данные функции уменьшения в обоих сценариях соответствуют ожидаемым (в том же порядке передаются элементы).