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