2014-12-02 8 views
6

मैं वस्तुओं की एक JSON सारणी में एक आईडी पुश करने के लिए कोशिश कर रहा हूँ। प्रत्येक ऑब्जेक्ट में "जॉबआईड" होना चाहिए: एपीआई कंट्रोलर को भेजे जाने से पहले वैल्यू 'डाला गया है। मैं इसके लिए प्रत्येक लूप का उपयोग करने की कोशिश कर रहा हूं लेकिन मैं अटक गया हूं। अभी सरणी में प्रत्येक ऑब्जेक्ट में इसे डालने के बजाय यह सरणी के अंत में डालना है। मेरे पास एक प्लंकर सेटअप है। plunkrJSON में एक कुंजी/मान पुश करने के लिए कैसे वस्तुओं

$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]: नौकरी [JobId]});' आशा इस वसीयत किसी को भी ... – Silvan

4

आप सरणी, नहीं सरणी अपने आप में वस्तुओं में हेरफेर करना चाहते हैं। इसे आज़माएं:

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

ऊपर वोट सही होने के लिए मदद करता है लेकिन कुछ ही मिनटों के पीछे पहला लड़का! हालांकि धन्यवाद – texas697

संबंधित मुद्दे