的Javascript改变特定对象属性

问题描述:

我有这样的:的Javascript改变特定对象属性

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function (data, status) { 
    $scope.data = data.content; //complex object 
    for(i=0;i<$scope.data.length;i++){ 
     $scope.data[i].value1 = "newvalue1"; 
     $scope.data[i].value2= "newvalue2"; 
    } 
}); 

我怎样才能改变属性的对象数组的某一点?

我得到这个错误,即使我知道它的存在

$scope.data[i] is undefined 

我试图解析JSON,但我得到这个错误这一点,如果$scope.data

unexpected character found... 
+0

什么是'data.content'? – dfsq 2014-09-03 10:54:07

+0

请发布JSON,以便我们可以看一看。 – 2014-09-03 10:54:38

我找到了一个解决方案:

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function (data, status) { 
    $scope.data = data.content; //complex object 
    for(i=0;i<$scope.data.length;i++){ 
     var x = $scope.data[i]; 
     x.value1 = "newvalue1"; 
     x.value2= "newvalue2"; 
     $scope.data[i].value1 = x.value1; 
     $scope.data[i].value2 = x.value2; 
    } 
}); 

说实话,我不知道为什么是这样工作的,但它确实。 谢谢大家。

使用使用具有对象的数组:

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function (data, status) { 
    $scope.data = data.content; //complex object 
    for(var key in $scope.data){ 
     $scope.data[key].value1 = "newvalue1"; 
     $scope.data[key].value2= "newvalue2"; 
    } 
}); 

或者如果value1和value2已经是$ scope.data的一个键,如

$scope.data = { 
    value1: "me" 
    value2: "you" 
} 

然后使用此:

$http({ 
    method: "GET", 
    url: myURL 
}). 
success(function(data, status) { 
    $scope.data = data.content; //complex object 
    for (var key in $scope.data) { 
     if (key == 'value1') { 
      $scope.data[key]= "newvalue1"; 
     } 

    } 
});