如何将for循环计算结果存入空数组?(JS代码问题)
问题分析与修复方案
嘿,我一眼就看出问题出在哪啦!你现在的代码里,每次循环都直接把计算结果赋值给了data2变量,这相当于把之前的数组直接覆盖成了单个数值——循环结束后自然就只剩最后一次计算的结果啦。
错误代码回顾
var data2 = []; for (var i = 0; i < elevations.length; i++) { data2 = elevations[i].elevation*3.28084; // convert meters to feet }
修复后的代码(两种可选方式)
方式一:使用数组push()方法(最常用)
push()方法会把新元素添加到数组的末尾,完美适配你的遍历场景:
var data2 = []; for (var i = 0; i < elevations.length; i++) { data2.push(elevations[i].elevation * 3.28084); // 把转换后的值追加到数组里 }
方式二:直接给数组指定索引赋值
如果你想严格对应原数组的索引位置,也可以直接通过索引设置值:
var data2 = []; for (var i = 0; i < elevations.length; i++) { data2[i] = elevations[i].elevation * 3.28084; // 给数组的第i个位置赋值 }
补充说明
两种方式都能实现你想要的效果:把每一个转换后的海拔值存入数组。push()更简洁省心,不需要手动管理索引;而指定索引的方式在需要精准控制元素位置时会更有用~
内容的提问来源于stack exchange,提问作者blg2
相关产品推荐
相关产品推荐

