代码之家  ›  专栏  ›  技术社区  ›  Shift 'n Tab

TS-如何从旧阵列和新阵列中获取阵列中删除和添加的项?

  •  -1
  • Shift 'n Tab  · 技术社区  · 9 年前

    我们应该有这个

    oldArray = [
        { id: 1, position: 'DEV OM'},
        { id: 2, position: 'Senior Developer'},
    ]
    
    newArray = [
        { id: 2, position: 'Senior Developer'},
        { id: 3, position: 'Junior Developer'},
    ]
    

    addedItems = getAddedItems(oldArray, newArray)
    removedItems = getRemovedItems(oldArray, newArray)
    
    
    // Output for addedItems
    [
        { id: 3, position: 'Junior Developer'}
    ]
    
    // Output for removedItems
    [
        { id: 1, position: 'DEV OM'}
    ]
    

    1 回复  |  直到 9 年前
        1
  •  2
  •   Pablo Lozano    9 年前

    您需要一个函数来查找两个数组之间的差异:

    let oldArray = [
        { id: 1, position: 'DEV OM'},
        { id: 2, position: 'Senior Developer'}
    ]
    
    let newArray = [
        { id: 2, position: 'Senior Developer'},
        { id: 3, position: 'Junior Developer'}
    ]
    
    function difference(a,b) {
      return a.filter(itema => !b.some(itemb => itemb.id===itema.id));
    }
    
    console.log(difference(oldArray,newArray))
    console.log(difference(newArray,oldArray))
    推荐文章