Javascript 对象的Typescript数组检查重复项

Javascript 对象的Typescript数组检查重复项,javascript,angularjs,angular,typescript,Javascript,Angularjs,Angular,Typescript,我需要检查对象项的副本 在下面的对象数组中,我需要检查“empno”或“extension”,如果有任何重复项,那么我需要抛出一个错误 我试过这个,但对我不起作用 [ { "id": 269, "empno": "34567", "extension": 345 }, { "id": 269, "empno": "34568", "extension": 346 },

我需要检查对象项的副本

在下面的对象数组中,我需要检查“empno”或“extension”,如果有任何重复项,那么我需要抛出一个错误

我试过这个,但对我不起作用

[
    {
        "id": 269,
        "empno": "34567",
        "extension": 345
    },
    {
        "id": 269,
        "empno": "34568",
        "extension": 346
    },
    {
        "id": 269,
        "empno": "34569",
        "extension": 345
    },
    {
        "id": 269,
        "empno": "34567",
        "extension": 345
    }
]
您可以构建一个允许有效查找现有值的:

const hasDuplicates = (data) => {
  const set = new Set();

  for (let {empno, extension} of data) {
    const key = `${empno}/${extension}`;
    if (set.has(key)) {
      return true;
    }

    set.add(key);
  }

  return false;
};
完整片段:

const数据=[{
“id”:269,
“empno”:“34567”,
“扩展”:345
},
{
“id”:269,
“empno”:“34568”,
“延期”:346
},
{
“id”:269,
“empno”:“34569”,
“扩展”:345
},
{
“id”:269,
“empno”:“34567”,
“扩展”:345
}
];
常量hasDuplicates=(数据)=>{
常量集=新集();
for(数据的let{empno,extension}){
const key=`${empno}/${extension}`;
如果(设置有(键)){
返回true;
}
设置、添加(键);
}
返回false;
};
console.log(hasDuplicates(数据))