是否使用本地方法之一(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);' –