JavaScript如何简化实现数组反转、元素翻倍后转为数值的操作?
优化实现方案
你可以直接使用 JavaScript 内置的数组方法链式调用完成需求,代码更简洁,同时支持任意长度的输入数组,不会受原代码只能处理长度为3的数组的限制:
const firstArray = [1, 2, 3]; // 执行逻辑:拷贝原数组 → 逆序 → 每个元素翻倍 → 拼接为字符串转数值 const result = Number([...firstArray].reverse().map(item => item * 2).join('')); console.log(result); // 输出结果为642,和原代码运行结果完全一致
逻辑说明
[...firstArray]是对原数组做浅拷贝,避免reverse()方法修改原数组的值,如果你不需要保留原数组可以省略这一步,直接调用firstArray.reverse()即可reverse()方法直接完成数组逆序操作map(item => item * 2)遍历数组完成所有元素的翻倍处理join('')把处理后的数组元素拼接为字符串,再通过Number()转成数值类型,就得到了合并后的最终结果
如果你想要用和原代码完全一致的累加计算逻辑实现,也可以用reduce方法完成:
const firstArray = [1, 2, 3]; const result = [...firstArray].reverse().reduce((sum, num, index, arr) => { // 按位数计算对应乘数:最高位是10的(长度-1-索引)次方,再乘以2 const multiplier = Math.pow(10, arr.length - 1 - index) * 2; return sum + num * multiplier; }, 0); console.log(result); // 同样输出642
内容的提问来源于stack exchange,提问作者user16559503
相关产品推荐
相关产品推荐

