L'ordre d'itération à travers un tableau en utilisant l'une des méthodes natives (map, forEach, reduce, filter, etc.) est-il déterministe et garanti par la norme?L'ordre d'itération des méthodes du tableau javascript (map, forEach, reduce, etc.) est-il déterministe?
EG, foo, bar, baz et qux sont-ils garantis [0, 2, 6, 12]
?
const a = [1, 2, 3, 4];
const foo = a.map((item, index) => item * index);
const bar = []; a.forEach((item, index) => bar[index] = item * index);
const baz = []; a.reduce((total, item, index) => baz[index] = item * index, 0);
const qux = []; a.filter((item, index) => qux[index] = item * index);
// etc
(Ce sont (très) des exemples artificiels)
Oui, les propriétés numériques sont traversées dans l'ordre croissant. Il est explicitement décrit dans la spécification de la langue. – Pointy
btw, vous devez utiliser une valeur de départ pour réduire, comme 'a.reduce ((total, élément, index) => baz [index] = élément * index, null);' –