zoukankan      html  css  js  c++  java
  • js 数组合并

    1.简单类型数组

    ES6
    array1.push(...array2) // => don't remove duplication
    OR
    [...array1,...array2] // => don't remove duplication
    OR
    [...new Set([...array1 ,...array2])]; // => remove duplication

    2.对象数组

    (1)方法一

    var initialData = [{
        'ID': 1,
        'FirstName': 'Sally'
      },
      {
        'ID': 2,
        'FirstName': 'Jim'
      },
      {
        'ID': 3,
        'FirstName': 'Bob'
      }
    ];
    
    var newData = [{
        'ID': 2,
        'FirstName': 'Jim'
      },
      {
        'ID': 4,
        'FirstName': 'Tom'
      },
      {
        'ID': 5,
        'FirstName': 'George'
      }
    ];
    
    var ids = new Set(initialData.map(d => d.ID));
    var merged = [...initialData, ...newData.filter(d => !ids.has(d.ID))];
    
    console.log(merged);

    (2)方法二
    const oldData = [
      { id: 1, name: 'John' },
      { id: 2, name: 'Jane' },
      { id: 3, name: 'Mike' },
    ];
    
    const newData = [
      { id: 2, name: 'Jane' },
      { id: 4, name: 'Rick' },
      { id: 5, name: 'Jim' },
    ];
    
    const usersMap = new Map();
    
    oldData.forEach(user => usersMap.set(user.id, user));
    
    newData.forEach(user => {
      const exists = usersMap.has(user.id);
      
      if (!exists) {
        usersMap.set(user.id, user);
      }
    })
    
    usersMap.forEach(user => console.log(user))


  • 相关阅读:
    配置 Sublime Text 用 Node.js 执行 JavaScript 程序
    KNN算法
    堆排序(heap sort)
    复原二叉树
    二叉树的广度优先遍历(层次遍历)
    二叉树(BT)相关
    BST(二叉搜索树)相关
    二叉树遍历(先序、中序、后序)
    排序算法
    查找算法
  • 原文地址:https://www.cnblogs.com/zany-hui/p/14384099.html
Copyright © 2011-2022 走看看