Javascript/Angular JS 搜索数组对象到数组对象

标签 javascript angularjs

我的问题是:

我有 2 个这样的数组对象

var array1 = [{ "id": 1, "name": "potatoe", photo="photo"}, {"id": 2, "name": "budget"}]

var array2 =  [{ "id": 1, "name": "potatoeModified"},{ "id": 3, "name": 
 "UhOhAnotherName"}, {"id": 2, "name": "budget"}]

我想搜索数组 2 中是否有 array1 ID 对象,如果是 id 1 = 1 名称将被替换,如果不存在则添加 id 3。

结果会是

[{ "id": 1, "name": "potatoeModified", photo="photo"}, {"id": 2, "name": "budget"},
{ "id": 3, "name": "UhOhAnotherName"}]

我尝试这样做,但每次我都得到一个圈复杂度太高的函数,我不想为此使用一个超大函数。我认为解决方案很简单,但我太盲目了..... 谢谢:)

最佳答案

尝试以下操作:

var array1 = [{ "id": 1, "name": "potatoe", "photo":"photo"}, {"id": 2, "name": "budget"}];

var array2 =  [{ "id": 1, "name": "potatoeModified"},{ "id": 3, "name": 
 "UhOhAnotherName"}, {"id": 2, "name": "budget"}];

array1.map(function(val,i){
  array2.forEach(function(v){
    if(val.id == v.id){
      val.name = v.name;
    }
    else{
      var found = array1.some(function (el) {
        return el.id === v.id;
      });
      if (!found) { array1.push(v); }
    }
  })
  
  return val;   
});

console.log(array1);

关于Javascript/Angular JS 搜索数组对象到数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553254/

相关文章:

javascript - "Uncaught SyntaxError: Unexpected token import"在 ASP 5/MVC6 中使用 moment js

javascript - ExtJS - 你觉得使用 JSON 或 XML 响应更容易吗?

angularjs - 检查 cookie : SyntaxError: Unexpected token u

javascript - IONIC 和 angularjs : Nothing happends when using angular-ui-router in navigation component

javascript - 初始化后设置 $resource transformResponse

javascript - Mac Safari 单个 TABLE 即使在空的时候也是 1px 宽

javascript - AngularJS $http 读取 JSON 数据

javascript - while循环中的函数只执行一次

javascript - 如何检测用户是否拥有来自网站的移动应用程序并打开该应用程序

javascript - AngularJS 和 PHP 应用程序中的 session