是否使用本地方法之一(map,forEach,reduce,filter等)确定性和标准保证迭代数组的顺序?JavaScript数组方法(map,forEach,reduce等)的迭代次序是确定性的吗?
EG,foo,bar,baz和qux保证是[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
(这些是(非常)人为的例子)
是的,数值属性按升序进行遍历。它在语言规范中有明确的描述。 – Pointy
顺便说一句,你需要使用一个起始值来减少,就像'a.reduce((total,item,index)=> baz [index] = item * index,null);' –