为什么使用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
相关产品推荐
相关产品推荐

