我有两个数组变量: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
添加为第二个数组的键。
$scope.var2 = {"classId":"3","typeOfSubject":"main", "subjectId":"{1,2}"}
答案 0 :(得分: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);
答案 1 :(得分:1)
您的期望不明确。无论如何,按照你的要求,它是。它会将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" }
答案 2 :(得分:0)
看起来你想合并这些对象,结果如下:
{
"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
答案 3 :(得分:0)