如何将键/值推入JSON对象

tex*_*697 7 angularjs

我试图将Id推入Json对象数组.每个对象必须有'"JobId":Value'在发送到apiController之前插入.我试图使用forEach循环,但我被卡住了.现在不是在数组中的每个对象中插入它而是插入数组的末尾.我有一个plunkr设置. plunkr

$scope.array = [{
  ESOURCELINEID:"5464",
  QBRFQLINESUPPLIERPARTNUMBER:"HW12",
  QBRFQLINESUPPLIERQUOTEUOM:"ft"
}, {
  ESOURCELINEID:"8569",
  QBRFQLINESUPPLIERPARTNUMBER:"LT34",
  QBRFQLINESUPPLIERQUOTEUOM:"Meter"
}];

var JobId = 143;
$scope.array.forEach(function (newJobItem) {
    $scope.array.push({'JobId' : JobId});
});

var index = 0;
$scope.array.forEach(function (newJobItem) {
    console.log('newJobItem #' + (index++) + ': ' + JSON.stringify(newJobItem));
});
Run Code Online (Sandbox Code Playgroud)

Kha*_*nna 17

你正在做的是迭代每个项目,$scope.array.forEach但是你实际上并没有修改从回调中返回的项目,newJobItem只是推送一个新项目:$scope.array.push({'JobId' : JobId});.

你的forEach中的正确行应该是newJobItem.JobId = JobId;.这样你就可以修改里面的现有条目,$scope.array而不仅仅是推送新对象.

更明确地说:

$scope.array.forEach(function (newJobItem) {
    $scope.array.push({'JobId' : JobId});
});
Run Code Online (Sandbox Code Playgroud)

变为:

$scope.array.forEach(function (newJobItem) {
    newJobItem.JobId = JobId;
});
Run Code Online (Sandbox Code Playgroud)