【问题标题】:Get different element from 2 arrays with different attributes in javascript从javascript中具有不同属性的2个数组中获取不同的元素
【发布时间】:2021-08-19 14:30:58
【问题描述】:

我的情况: 我有这两个数组

allElem=[ {key: "a1234c", name: "username@gmail.com"}, {key: "b6789d", name: 
 username2@gmail.com"},{key: "ab234s", name: "toretrieve@gmail.com"}]

otherElem=[{key: "a1234c", name: "username@gmail.com", newAtt: 1}, {key: "b6789d", 
name: "username2@gmail.com",  newAtt: 2}]

如您所见,数组具有不同的结构,我想返回第一个数组的 ekement:{key: "ab234s", name: "toretrieve@gmail.com"}

我尝试使用这样的过滤器:

var filtered= allElem.filter((elem: { key: any; }) => !otherElem.find(({ key }) 
=> elem.key === key));

但不工作。有什么建议吗?

【问题讨论】:

    标签: javascript arrays typescript


    【解决方案1】:

    这是你需要的:

    interface Item {
        key: string;
        name: string;
        newAtt?: number;
    }
    
    const allElem: Item[] = [{key: "a1234c", name: "username@gmail.com"}, {key: "b6789d", name: "username2@gmail.com"}, {key: "ab234s", name: "toretrieve@gmail.com"}];
    
    const otherElem: Item[] = [{key: "a1234c", name: "username@gmail.com", newAtt: 1}, {key: "b6789d", name: "username2@gmail.com",  newAtt: 2}];
    
    const filtered = allElem.filter((itemFromAll: Item) => !otherElem.find((itemFromOther: Item) => itemFromAll.key === itemFromOther.key));
    

    我建议你阅读 TypeScript 中的类型。有一些有用的链接:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多