我有一个for循环,遍历一系列数据。我想将elevations[i].elevation*3.28084的结果存储在数组中。目前它只在循环外有一个值。
var data2 = [];
for (var i = 0; i < elevations.length; i++) {
data2 = elevations[i].elevation*3.28084; // convert meters to feet
}
我有一个for循环,遍历一系列数据。我想将elevations[i].elevation*3.28084的结果存储在数组中。目前它只在循环外有一个值。
var data2 = [];
for (var i = 0; i < elevations.length; i++) {
data2 = elevations[i].elevation*3.28084; // convert meters to feet
}
您需要将值分配给数组entries,而不是整个数组本身:
data2[i] = elevations[i].elevation*3.28084;
// --^^^
或者,使用push
:
data2.push(elevations[i].elevation*3.28084);
// --^^^^^^-------------------------------^
您想将新项 elevation[i].elevation * 3.28084
推入数组中。然而,更方便的方法是使用 Array.prototype.map :
var data2 = elevations.map(function (elevation) {
return elevation.elevation * 3.28084
})
data2
开始为空,绝对是这样。 - T.J. Crowderdata2
赋值,应该使用函数 push
来添加新值到数组中,或者使用当前索引来添加新值到该数组中。var data2 = [];
for (var i = 0; i < elevations.length; i++) {
data2.push(elevations[i].elevation * 3.28084); // convert meters to feet
}
var data2 = [];
for (var i = 0; i < elevations.length; i++) {
data2.push(elevations[i].elevation*3.28084); // convert meters to feet
}
或者你可以使用 map 将数据插入到该数组中:
var data2 = elevations.map(function(value){
return value.elevation*3.28084;
}
data2
开始为空的情况(正如我上面的第一个示例所假设的那样),您可以使用map
,就像 dfsq 所展示的那样。 - T.J. Crowder