将for循环的结果添加到一个空数组中

3

我有一个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        
    }
4个回答

3

您需要将值分配给数组entries,而不是整个数组本身:

data2[i] = elevations[i].elevation*3.28084;
// --^^^

或者,使用push

data2.push(elevations[i].elevation*3.28084);
// --^^^^^^-------------------------------^

在这种情况下,即 data2 开始为空的情况(正如我上面的第一个示例所假设的那样),您可以使用 map,就像 dfsq 所展示的那样。 - T.J. Crowder

3

您想将新项 elevation[i].elevation * 3.28084 推入数组中。然而,更方便的方法是使用 Array.prototype.map

var data2 = elevations.map(function (elevation) {
  return elevation.elevation * 3.28084
})

在这种特定情况下,data2 开始为空,绝对是这样。 - T.J. Crowder

0
你只是给之前声明的变量 data2 赋值,应该使用函数 push 来添加新值到数组中,或者使用当前索引来添加新值到该数组中。
var data2 = [];

for (var i = 0; i < elevations.length; i++) {
  data2.push(elevations[i].elevation * 3.28084); // convert meters to feet        
}

-2
你需要像这样将你的结果推送到那个数组中:
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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接