AngularJS:如何连接两个数组?

时间:2014-05-22 19:09:55

标签: javascript angularjs

我有以下数组的值(我正在生成值)

$scope.objectName = [{ Name: '' }];
$scope.propertiesElement = [{ Key: '', Value: '' }];

我想连接这两个对象以获得以下结果

[{Name:''},{ Key: '', Value: '' }]

Plunker link,某种程度上不起作用

当我点击添加行按钮时,它将为键和值文本框添加另一行而不是名称,我可以添加n没有行,当我点击提交时,它应该显示kev值对

[{Name:''},{ Key: '', Value: '' },{ Key: '', Value: '' },{ Key: '', Value: '' }.....so on]

由于

1 个答案:

答案 0 :(得分:2)

不确定为什么要构建不匹配对象的数组。在我看来,这是在寻找麻烦。我建议可能会做以下事情:

$scope.objects = [{Name: '', Elements: []}];

然后,您可以轻松管理具有元素的多个对象:

(我使用下划线http://underscorejs.org/

$scope.addElementToObject = function(objName, element){
   _.where($scope.mergedArray, {Name: objName}).Elements.push(element);
};

然后,您可以添加到该对象的元素列表,而无需在每次使用时评估elements数组中的对象。


如果您仍然需要/需要合并不匹配对象的数组,则可能如下:

$scope.objectName = [{ Name: '' }];
$scope.propertiesElement = [{ Key: '', Value: '' }];
$scope.mergedArray = $scope.objectName.contact($scope.propertiesElement);

$scope.addElement = function(element){
   $scope.mergedArray.push(element);
};

然后,在您的点击事件代码中:

$scope.addElement({ Key: 'someKey', Value: 'Some Value' });

我希望这会有所帮助。