【问题标题】:How to merge 2 objects array to make it one object and json output using angularjs如何使用angularjs合并2个对象数组以使其成为一个对象和json输出
【发布时间】:2017-10-06 09:11:14
【问题描述】:

我有 2 个对象数组,并将使用复选框上的这些值进行查看。我想合并 2 个 obj 数组以使其成为一个 json 对象文件。请帮帮我

 $scope.fruits = [
{ name: 'apple',    selected: true },
{ name: 'orange',   selected: false },
{ name: 'pear',     selected: true },
{ name: 'naartjie', selected: false }
];


$scope.color = [
    { name: 'red',    selected: true },
    { name: 'green',   selected: false },
    { name: 'orange',     selected: true },
    { name: 'yellow', selected: false }
];

还有景色,

<label ng-repeat="fruit in fruits" class="checkbox-inline">
<input type="checkbox" name="selectedFruits[]" value="{{fruitName}}" ng-model="fruit.selected"> {{fruit.name}}</label>
<label ng-repeat="color in colors" class="checkbox-inline">
<input type="checkbox" name="selectedColors[]" value="{{colorName}}" ng-model="color.selected"> {{color.name}}</label>

我想要的输出如下:

[{
    "name": "apple",
     "color": "red",
    "selected": true
  },
{
"name": "orange",
 "color": "yellow",
"selected": true},
{
"name": "pear",
 "color": "green",
"selected": true}]

【问题讨论】:

  • 当您查看输出时,这两个特定的数组不匹配。例如,array1/object1 确实与 array2/object1 匹配,但下一个 array1/object2 似乎与输出中的 array2/object3 匹配。你怎么知道哪种颜色与哪种水果相配?
  • 两个对象都应该有一些键。
  • @rrd 谢谢。我想要的就像你的例子。例如,array1/object1 确实与 array2/object1 匹配,但下一个 array1/object2 似乎与输出中的 array2/object3 匹配。用户必须先选择水果,然后再选择颜色。无需考虑是否匹配。我想要的是用户点击后我需要将数组合并为 json 格式。

标签: angularjs angularjs-directive angularjs-scope


【解决方案1】:

您可以为此使用map 函数。

 var fruits = [
{ name: 'apple',    selected: true },
{ name: 'orange',   selected: false },
{ name: 'pear',     selected: true },
{ name: 'naartjie', selected: false }
];


var color = [
    { name: 'red',    selected: true },
    { name: 'green',   selected: false },
    { name: 'orange',     selected: true },
    { name: 'yellow', selected: false }
];

var arr = fruits.map((o,i)=>{
   o.color = color[i].name;
   return o;
});

console.log(arr)

【讨论】:

  • 我不想成为地图。我想根据用户选择进行合并。
  • 例如 array1/object1 确实与 array2/object1 匹配,但下一个 array1/object2 似乎与输出中的 array2/object3 匹配。用户必须先选择水果,然后再选择颜色。无需考虑是否匹配。我想要的是用户点击后我需要将数组合并为 json 格式。
【解决方案2】:

使用 Angular 合并 enter link description here

var mergedObject = angular.extend(object1, object2);

忽略空值和缺失值的手动方式是

this

【讨论】:

  • NOP。例如,array1/object1 与 array2/object1 匹配,但下一个 array1/object2 似乎与输出中的 array2/object3 匹配。用户必须先选择水果,然后再选择颜色。无需考虑是否匹配。我想要的是用户点击后我需要将数组合并为 json 格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 2016-02-25
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多