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

为什么使用forEach修改数组元素的类型时无法生效?

问题根因

  • forEach方法无返回值,你在回调中仅生成了元素转数值后的结果,未对原数组执行任何赋值操作
  • 基础类型的数组元素在forEach回调中为值传递,回调拿到的item只是原数组元素的副本,就算直接修改item也不会影响原数组,更不用说你仅执行了Number(item)没有做任何赋值动作

解决方法

生成新数组(更推荐)

使用map方法生成转换完成的新数组,不会改动原数组:

// 完整写法
const newArr = arr.map(item => Number(item))
// 可简化为
const newArr = arr.map(Number)

直接修改原数组

如果业务需要改动原数组,可以通过forEach的下标参数定位原数组位置后赋值:

arr.forEach((item, index) => {
  arr[index] = Number(item)
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:00:05