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

如何编写for循环实现数组遍历时相邻索引元素依次相乘

相邻元素相乘循环实现方案

你当前写的嵌套循环属于过度实现,这个逻辑不需要双层循环,单循环即可完成。

核心逻辑

循环遍历到数组倒数第二个元素终止即可,每次运算直接取当前索引i的元素和下一个索引i+1的元素做乘法——最后一个元素没有后续相邻元素,不需要参与配对,同时把终止条件设为length - 1也能避免i+1超出数组索引范围报错。

参考代码

普通数字数组版本(对应给出的示例)

const array = [0,1,2,3,4,5]
for (let i = 0; i < array.length - 1; i++) {
  const res = array[i] * array[i+1]
  console.log(`${array[i]}×${array[i+1]} = ${res}`)
}

运行输出完全匹配预期:

0×1 = 0
1×2 = 2
2×3 = 6
3×4 = 12
4×5 = 20

适配Positions对象数组的版本

for (let i = 0; i < Positions.length - 1; i++) {
  const product = Positions[i].number * Positions[i + 1].number
  console.log(product)
}

原代码问题说明

  • 嵌套循环会生成笛卡尔积配对:外层每遍历一个元素,内层就会遍历从索引1开始的所有后续元素,相当于每个元素和它后面所有元素都做一次乘法,总计算量为n*(n-1)次,远多于需求要求的n-1次相邻计算
  • 内层循环索引j没有和外层i绑定,会出现非相邻、甚至反向索引的配对(比如i=2、j=1时,会计算索引2和索引1的乘积),完全不符合相邻配对的要求

内容的提问来源于stack exchange,提问作者fsf sdfsdf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:39:17