从右到左迭代JavaScript数组

Array.prototype.forEach()非常方便,但如果你想从右到左迭代数组怎么办?使用for循环是一个选择,但我们还有更优雅的工具可供使用。

使用Array.prototype.reverse()可以很容易地反转数组,但它会改变原始数组。为了避免这种情况,我们需要创建一个浅克隆,使用Array.prototype.slice()。在反转之前进行克隆是为了避免改变原始数组。最后,我们可以使用Array.prototype.forEach()迭代反转后的数组

const forEachRight = (arr, callback) =>
  arr.slice().reverse().forEach(callback);

forEachRight([1, 2, 3, 4], val => console.log(val)); // '4', '3', '2', '1'