gpt4 book ai didi

javascript - 在 Array.prototype.map 中返回一个迭代步骤

转载 作者:行者123 更新时间:2023-11-30 14:15:50 24 4
gpt4 key购买 nike

是否可以在 JavaScript 的 Array.prototype.mapArray.prototype.forEach 中向后退一步?例如,如果当前迭代索引为 2,我们可以返回索引 1 吗?请记住,我们可以通过递减 i 来使用普通的 for-loop 来实现这一点,有没有办法使用 map 来做到这一点?

最佳答案

您可以使用提供给回调的第三个参数访问 .map 中的前一个元素:

const input = [1, 2, 3];

const output = input.map((num, i, arr) => {
console.log('last num was ' + arr[i - 1] + ', current num is ' + num);
return num + 1;
});

但是无法分配到新映射数组中的前一个元素,因为前一次迭代的 .map 回调已经运行并返回了一个值。

一种方法可能会完成您要查找的内容,而不是从下一个元素向后查找,而是从当前元素向前查找,然后返回新元素基于此的映射值:

const input = [1, 2, 3];

const output = input.map((num, i, arr) => {
console.log('next num is ' + arr[i + 1] + ', current num is ' + num);
return num + (arr[i + 1] || 0);
});
console.log(output);

关于javascript - 在 Array.prototype.map 中返回一个迭代步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53578266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com