2014-12-02 2 views
6

Я пытаюсь нажать Id в массив объектов Json. Каждый объект должен иметь «JobId»: значение «вставлено» перед его отправкой в ​​apiController. Я пытаюсь использовать цикл forEach для этого, но я застрял. Прямо сейчас, вместо того, чтобы вставлять это в каждый объект в массиве, он вставляет в конец массива. У меня есть установка plunkr. plunkrКак нажимать ключ/значение в объекты JSON

$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)); 
}); 

ответ

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}); 
}); 

становится:

$scope.array.forEach(function (newJobItem) { 
    newJobItem.JobId = JobId; 
}); 
+0

Спасибо, в моем случае мне это нужно как массив. Таким образом, вы можете использовать это с помощью скобок: '$ scope.array.push ({[JobId]: Job [JobId]});' Надеюсь, это тоже поможет любому ... – Silvan

4

Вы хотите управлять объектами в массиве, а не сам массив. Попробуйте следующее:

$scope.array.forEach(function (newJobItem) { 
    var JobId = 143; 
    newJobItem.JobId = JobId; 
}); 
+0

за правильность, но несколько минут назад первый парень! Спасибо хоть – texas697

Смежные вопросы