Angular 检查阵列中的重复对象

Angular 检查阵列中的重复对象,angular,typescript,Angular,Typescript,我试图在对象数组中找到重复值,并在es6函数中返回真值 arrayOne=[{ 阿格雷戈德瓦尔:“伯爵”, 值:“员工全名” }, { agrregatedVal:“min”, 值:“员工全名” }, { agrregatedVal:“min”, 值:“员工全名” }, { 阿格雷戈德瓦尔:“伯爵”, 价值:“付款日期” }, { 阿格雷戈德瓦尔:“伯爵”, 值:“员工全名” }, { agrregatedVal:“min”, 值:“签名” }, { agrregatedVal:“min”,

我试图在对象数组中找到重复值,并在es6函数中返回真值

arrayOne=[{
阿格雷戈德瓦尔:“伯爵”,
值:“员工全名”
},
{
agrregatedVal:“min”,
值:“员工全名”
},
{
agrregatedVal:“min”,
值:“员工全名”
},
{
阿格雷戈德瓦尔:“伯爵”,
价值:“付款日期”
},
{
阿格雷戈德瓦尔:“伯爵”,
值:“员工全名”
},
{
agrregatedVal:“min”,
值:“签名”
},
{
agrregatedVal:“min”,
价值:“付款日期”
}]
以下是几件事:

1) 有重复项:

如果每个值的对象与另一个对象相同,则如何返回true呢

2) 删除重复项:

 unique = [...new Set(arrayOne.map(a => a.agrregatedVal+ "':'"+ a.value))];
现在,您可以使用这些重新构造对象,请尝试以下操作:

const arrayOne = [{
    agrregatedVal: "count",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "min",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "min",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "count",
    value: "Pay Date"
  },
  {
    agrregatedVal: "count",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "min",
    value: "Signature"
  },
  {
    agrregatedVal: "min",
    value: "Pay Date"
  }]

function hasDuplicate(arrayOne) {
  const newArray = arrayOne.filter((thing, index, self) => index === self.findIndex(t => t.agrregatedVal === thing.agrregatedVal && t.value === thing.value));

  return newArray.length < arrayOne.length;
}

console.log(hasDuplicate(arrayOne));
const arrayOne=[{
阿格雷戈德瓦尔:“伯爵”,
值:“员工全名”
},
{
agrregatedVal:“min”,
值:“员工全名”
},
{
agrregatedVal:“min”,
值:“员工全名”
},
{
阿格雷戈德瓦尔:“伯爵”,
价值:“付款日期”
},
{
阿格雷戈德瓦尔:“伯爵”,
值:“员工全名”
},
{
agrregatedVal:“min”,
值:“签名”
},
{
agrregatedVal:“min”,
价值:“付款日期”
}]
函数hasDuplicate(arrayOne){
const newArray=arrayOne.filter((thing,index,self)=>index==self.findIndex(t=>t.agregatedval==thing.agregatedval&&t.value==thing.value));
返回newArray.length

如果存在/存在重复项,HASDUPLECTATE将返回true

考虑以下实施:

const initialArray=[
{agregatedval:“count”,value:“Employee Full Name”},
{agregatedval:“min”,value:“员工全名”},
{agregatedval:“min”,value:“员工全名”},
];
常数重复阵列=[
…新集合(initialArray.map(item=>JSON.stringify(item)))
].map(itemJson=>JSON.parse(itemJson));

console.log(重复数据阵列)您从不从回调函数返回任何内容。它应该是
返回索引===…
,或者你应该删除花括号。我尝试删除花括号,但它对我仍然无效。你也必须对内部回调执行相同的操作。它删除重复值并返回数组,但我只需要布尔值而不是数组哪个布尔值?清楚地解释你的方法应该做什么:“我的方法应该在…”时返回true。您发布的代码将创建一个过滤数组。
const arrayOne = [{
    agrregatedVal: "count",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "min",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "min",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "count",
    value: "Pay Date"
  },
  {
    agrregatedVal: "count",
    value: "Employee Full Name"
  },
  {
    agrregatedVal: "min",
    value: "Signature"
  },
  {
    agrregatedVal: "min",
    value: "Pay Date"
  }]

function hasDuplicate(arrayOne) {
  const newArray = arrayOne.filter((thing, index, self) => index === self.findIndex(t => t.agrregatedVal === thing.agrregatedVal && t.value === thing.value));

  return newArray.length < arrayOne.length;
}

console.log(hasDuplicate(arrayOne));