开发者问题收集

使用 JavaScript 我想要得到以下输出

2021-10-23
51

输出一个数组,其中一个值添加到数组的下一个值。最后一个值将与第一个值相加。

示例: [45, 4, 9, 16, 25] 转换为: [49, 13, 25, 41, 70]

必须使用 Map() 方法。

3个回答

使用 Array.prototype.map() 时,您可以使用索引参数,并在每次迭代中
查看它是否是数组的末尾,如下所示:

const arr = [45, 4, 9, 16, 25];

const newArr = arr.map((item, i) => {
  return i !== (arr.length - 1) ? item + arr[i + 1] : item + arr[0];
})

console.log(newArr);

Array.prototype.map()

zb22
2021-10-23

您可以尝试以下操作:

console.log([45, 4, 9, 16, 25].map((item, index, array) => item + array[(index + 1) % array.length]))
Huan
2021-10-23

这很好用。

const nums = [45, 4, 9, 16, 25];

const newNums = nums.map((item, index) => {
  if(index < nums.length - 1) {
    return item + nums[ index + 1]
  }
    return item + nums[0]
})

console.log(newNums) // [ 49, 13, 25, 41, 70 ]
Hussein Mohamed
2021-10-23