You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript的Map()方法实现数组元素相邻累加首尾相连

JavaScript 基于map方法实现环回相邻元素求和

实现逻辑

利用Array.prototype.map回调自带的当前索引、原数组入参,配合取模运算处理最后一个元素的边界问题,直接计算每个元素和下一个元素的和,最后一个元素自动匹配首元素求和。

可运行代码

// 示例原数组
const originalArr = [45, 4, 9, 16, 25];
// 转换逻辑
const convertedArr = originalArr.map((currentItem, index, arr) => {
  const nextIndex = (index + 1) % arr.length;
  return currentItem + arr[nextIndex];
});
console.log(convertedArr); // 输出:[49, 13, 25, 41, 70]

说明

  • 取模运算%用来处理索引溢出:当遍历到最后一个元素时,index + 1等于数组长度,对数组长度取模后得到0,刚好对应数组第一个元素的索引,完美符合首尾相加的要求。
  • 全程仅使用map方法完成转换,无额外遍历操作,时间复杂度为O(n)。

如果需要封装成可复用的函数,可以使用以下写法:

function getCyclicSumArray(arr) {
  if (!Array.isArray(arr)) return [];
  return arr.map((item, i, origin) => item + origin[(i + 1) % origin.length]);
}

内容的提问来源于stack exchange,提问作者MûHammad UMar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:27:03