JavaScript如何对数组奇数位置值翻倍并返回完整数组
实现方案
你之前使用indexOf出错的核心原因是:该方法只会返回指定元素在数组中第一次出现的位置,数组存在重复元素时无法获取到当前遍历项的真实索引,因此无法正确判断位置做翻倍处理。
使用JS原生Array.map方法可以直接在遍历过程中拿到当前元素和对应索引,一行代码就能实现需求:
let num = "123456" let numArray = Array.from(num) // 处理逻辑:0起始索引为奇数的位置翻倍,其余保持原值 const newArray = numArray.map((val, idx) => idx % 2 === 1 ? Number(val) * 2 : Number(val))
运行后newArray的值就是你预期的[1,4,3,8,5,12]。
如果你后续需要调整为**从1开始计数的奇数位置(即第1、3、5位)**做翻倍,只需要把判断条件改为idx % 2 === 0即可。
内容的提问来源于stack exchange,提问作者G9D4
相关产品推荐
相关产品推荐

