如何连接或合并两个数组
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
的subjectId作为整数列表添加到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
这些是对象,而不是数组。。请注意,数组有这个[]
括号,而对象和您的代码一样是{}
。。在这种情况下,您希望将一个新对象连接到构建的对象中。。
你的问题已经在这篇文章中解决了
但是,如果您希望看到更小的代码。。根据这里的文档,将在AngularJS
中使用extends
函数
angular.extends(yourObject, objectToJoin, ...);
注意,该函数是从jQuery
继承的,您可以在此处检查jQuery
文档的版本
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 效率:整数数组的一个子集中两个项之间的最大差值
- 将两个值组合成extjs 4.1的形式
- 如何将中的两个geoJSON功能集合添加到两个层组中
- 在 JQuery 验证中验证多个“数组命名”文件输入和下拉列表
- 在一个区间之间生成两个随机数组
- 使用两个捕获组和JavaScript的replace()函数
- 通过找到两个重复组之一的正则表达式组
- 从Javascript中的两个子数组中获取随机结果
- 如何在一个可选的非捕获组中创建两个捕获组
- paper.js:获取两个层/组的原始像素数据