[英]How to concatenate or merge two arrays
我有兩個數組變量: var1
和var2
。
$scope.var1 = {
"0":{"subjectId":"1","subjectShortName":"English","subjectCode":null,"IsSelected":true},
"1":{"subjectId":"2","subjectShortName":"Hindi","subjectCode":null,"IsSelected":true}
};
$scope.var2 = {"classId":"3","typeOfSubject":"main"}
我如何合並或連接這兩個數組以獲得下面的那種數組? 基本上我想將所有subjectId
添加為第二個數組的Key。
$scope.var2 = {"classId":"3","typeOfSubject":"main", "subjectId":"{1,2}"}
在你的例子中,你使用的是對象而不是數組。 但我離開這里如何加入兩個對象。 https://docs.angularjs.org/api/ng/function/angular.extend
在你的情況下:
$scope.new_var = angular.extend({}, $scope.var1, $scope.var2)
。
如果你打算使用數組,我不知道angularjs中的原生函數。
你可以使用jquery > http://api.jquery.com/jquery.merge/
或者javascript
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale);
你的期望不明確。 無論如何,按照你的要求,它是。 它會將var1
的subjectIds作為整數列表添加到var2
中。
var subjectIds = [];
for(var k in $scope.var1) {
subjectIds.push(parseInt($scope.var1[k].subjectId));
}
$scope.var2.subjectId = subjectIds.join(', ');
結果成
{ classId: '3', typeOfSubject: 'main', subjectId: "1, 2" }
看起來您想要合並這些對象,結果如下所示:
{
"classId": "3",
"typeOfSubject": "main",
"subjectId": {
"1": {"subjectId": "1", "subjectShortName": "English", ...}
"2": {"subjectId": "2", "subjectShortName": "Hindi", ...}
}
}
這不需要任何角度支持,但您可以使用angular.forEach
輕松迭代var1
對象:
$scope.var2.subjectId = {};
angular.forEach($scope.var1, function(subject){
this[subject.subjectId] = subject;
}, $scope.var2.subjectId); //set "this" to the member of var2 we're populating
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.