更改数组中每个项目的属性?

时间:2016-03-08 22:29:23

标签: javascript jquery arrays foreach for-in-loop

我需要设置此数组中每个项目的值,计数。

所以,例如,path [0] .value = 1,path [1] .value = 2等......

编辑:我正在寻找最有效的方法。

我认为for循环是最好的方法,但我想学习其他方法。可以使用map()方法或forEach()吗?那个......在声明中怎么样?我想用纯JS来做这件事,但如果你能用jQuery教我一个更好的方法,我也有兴趣了解它。

提前致谢。



function Cell(x,y){
    this.xCoordinate = x;
    this.yCoordinate = y;
    this.value;
}
var path = [new Cell(0,0), new Cell(0,1), new Cell(0,2)];




4 个答案:

答案 0 :(得分:1)

您可以使用for循环或forEach

for(var i=0; i<path.length; ++i)
  path[i].value = i+1;
path.forEach(function(cell, i) {
  cell.value = i + 1;
});

由于Why is using “for…in” with array iteration such a bad idea?,最好避免使用for...in

答案 1 :(得分:0)

如果您有现有数组,则可以使用map。

var path = [0,1,2].map( x => new Cell(0, x))

或改变

path = path.map( x => {
  x.value = x.yCoordinate - 1
  return x 
}) 

答案 2 :(得分:0)

一个简单的for循环应该有效:

app.controller("HttpGetController", function ($scope, $http) {
    $scope.SendData = function () { 

        var data = { num1: $scope.num1, num2: $scope.num2 };

        $http.post('https://httpbin.org/post', data) 
            .then(function (response) {
                  $scope.PostDataResponse = response.data.data;
        })
     }
});

答案 3 :(得分:0)

<html>
<body>
<p id="demo"></p>
<script>
function Cell(x,y){
    this.xCoordinate = x;
    this.yCoordinate = y;
    this.value;
}
function setValues(element, index, array){
array[index].value = index+1;
}
var path = [new Cell(0,0), new Cell(0,1), new Cell(0,2)];
path.forEach(setValues);
document.getElementById("demo").innerHTML = path[2].value;
</script>
</body>
</html>