我正在使用 Array.prototype.map()
转换我的数组,如果当前项目符合某些条件,我想更改其上一个项目。
下面的代码似乎不起作用,如果没有 for
我该怎么做?循环?
var nums = [1, 2, 3, 4, 5];
var res = nums.map((item, index, array) => {
if (item > 3) {
array[index - 1] += 1;
}
return item;
});
console.log(res); // [ 1, 2, 3, 4, 5 ], I want [1, 2, 4, 5, 5]
最佳答案
您可以使用 reducer
var res = [1, 2, 3, 4, 5]
.reduce((reduced, item, i) => {
i && (reduced[i-1] += item > 3 ? 1 : 0);
return [...reduced, item];
}, []);
console.log(res);
关于javascript - 操作 Array.map 中的前一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52399750/