javascript-从数组中删除完全重复的行
我有一个Javascript的列表javascript-从数组中删除完全重复的行,javascript,arrays,Javascript,Arrays,我有一个Javascript的列表 var list = [{ ID: "2566", NAME: "ENTERPRISE EXPENSE", EXECUTE: "LOAD_DIMENTION", TYPE: "PROCEDURE" }, { ID: "1234", NAME: "LOAD EXPENSE FACT", EXECUTE: "LOAD_EXPENSE_FACT", TYPE: "STORED PROCEDURE
var list = [{
ID: "2566",
NAME: "ENTERPRISE EXPENSE",
EXECUTE: "LOAD_DIMENTION",
TYPE: "PROCEDURE"
},
{
ID: "1234",
NAME: "LOAD EXPENSE FACT",
EXECUTE: "LOAD_EXPENSE_FACT",
TYPE: "STORED PROCEDURE"
},
{
ID: "RI0031",
NAME: "LOAD HEAD COUNT",
EXECUTE: "LOAD_HEADCOUNT_FACT",
TYPE: "STORED PROCEDURE"
},
{
NAME: "Not Required",
EXECUTE: "Not Required",
TYPE: "Not Required"
},
{
NAME: "Duplicate",
EXECUTE: "Duplicate",
TYPE: "Duplicate"
},
{
ID: "RI04",
NAME: "CALCULATE FAST",
EXECUTE: "FF_CALC",
TYPE: "STORED PROCEDURE"
},
{
NAME: "FORMULAS",
EXECUTE: "FF_CALC",
TYPE: "STORED PROCEDURE"
},
{
ID: "RI0031",
NAME: "LOAD HEAD COUNT",
EXECUTE: "LOAD_HEADCOUNT_FACT",
TYPE: "STORED PROCEDURE"
},
{
ID: "RI04",
NAME: "CALCULATE FAST",
EXECUTE: "FF_CALC",
TYPE: "STORED PROCEDURE"
},
{
NAME: "FORMULAS",
EXECUTE: "FF_CALC",
TYPE: "STORED PROCEDURE"
},
{
ID: "RID005",
NAME: "CALCULATE FAST GROUP",
EXECUTE: "FF_CALC",
TYPE: "STORED PROCEDURE"
},
{
NAME: "Not Required",
EXECUTE: "Not Required",
TYPE: "Not Required"
},
{
NAME: "Duplicate",
EXECUTE: "Duplicate",
TYPE: "Duplicate"
}
];
此列表有许多重复行。我想从中删除所有重复的行
对象也可以有10个以上的属性,因此检查每个属性不是解决方案。另外,无论我上网的方式是一维数组还是通过特定属性删除重复项。
如何维护包含所有唯一行的列表?这将从对象数组中删除精确的重复项
var list=[{ID:“2566”,名称:“企业费用”,执行:“加载维度”,类型:“过程”},
{ID:“1234”,名称:“加载费用事实”,执行:“加载费用事实”,类型:“存储过程”},
{ID:“RI0031”,名称:“加载人头数”,执行:“加载人头数”\u事实,类型:“存储过程”},
{NAME:“非必需”,EXECUTE:“非必需”,TYPE:“非必需”},
{NAME:“Duplicate”,EXECUTE:“Duplicate”,TYPE:“Duplicate”},
{ID:“RI04”,NAME:“CALCULATE FAST”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{NAME:“FORMULAS”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{ID:“RI0031”,名称:“加载人头数”,执行:“加载人头数”\u事实,类型:“存储过程”},
{ID:“RI04”,NAME:“CALCULATE FAST”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{NAME:“FORMULAS”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{ID:“RID005”,名称:“计算快速组”,执行:“FF_CALC”,类型:“存储过程”},
{NAME:“非必需”,EXECUTE:“非必需”,TYPE:“非必需”},
{NAME:“Duplicate”,EXECUTE:“Duplicate”,TYPE:“Duplicate”}];
var filtered=[…新集合(list.map(v=>JSON.stringify(v)))];
log(filtered.map(v=>JSON.parse(v))编码>这将从对象数组中删除精确的重复项
var list=[{ID:“2566”,名称:“企业费用”,执行:“加载维度”,类型:“过程”},
{ID:“1234”,名称:“加载费用事实”,执行:“加载费用事实”,类型:“存储过程”},
{ID:“RI0031”,名称:“加载人头数”,执行:“加载人头数”\u事实,类型:“存储过程”},
{NAME:“非必需”,EXECUTE:“非必需”,TYPE:“非必需”},
{NAME:“Duplicate”,EXECUTE:“Duplicate”,TYPE:“Duplicate”},
{ID:“RI04”,NAME:“CALCULATE FAST”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{NAME:“FORMULAS”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{ID:“RI0031”,名称:“加载人头数”,执行:“加载人头数”\u事实,类型:“存储过程”},
{ID:“RI04”,NAME:“CALCULATE FAST”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{NAME:“FORMULAS”,EXECUTE:“FF_CALC”,TYPE:“storage PROCEDURE”},
{ID:“RID005”,名称:“计算快速组”,执行:“FF_CALC”,类型:“存储过程”},
{NAME:“非必需”,EXECUTE:“非必需”,TYPE:“非必需”},
{NAME:“Duplicate”,EXECUTE:“Duplicate”,TYPE:“Duplicate”}];
var filtered=[…新集合(list.map(v=>JSON.stringify(v)))];
log(filtered.map(v=>JSON.parse(v))代码>将所有元素字符串化,同时检查是否存在相似的元素,然后对其进行解析<但是,code>JSON.stringify()和JSON.parse()的速度并不是非常快。如果对象很大,请记住这一点
var列表=[{
身份证号码:“2566”,
名称:“企业费用”,
执行:“加载尺寸”,
类型:“程序”
},
{
ID:“1234”,
名称:“加载费用事实”,
执行:“加载费用事实”,
类型:“存储过程”
},
{
ID:“RI0031”,
名称:“装货人数”,
执行:“加载\u编制\u事实”,
类型:“存储过程”
},
{
名称:“不需要”,
执行:“不需要”,
类型:“不需要”
},
{
名称:“重复”,
执行:“复制”,
类型:“重复”
},
{
ID:“RI04”,
名称:“快速计算”,
执行:“FF_CALC”,
类型:“存储过程”
},
{
名称:“公式”,
执行:“FF_CALC”,
类型:“存储过程”
},
{
ID:“RI0031”,
名称:“装货人数”,
执行:“加载\u编制\u事实”,
类型:“存储过程”
},
{
ID:“RI04”,
名称:“快速计算”,
执行:“FF_CALC”,
类型:“存储过程”
},
{
名称:“公式”,
执行:“FF_CALC”,
类型:“存储过程”
},
{
ID:“RID005”,
名称:“计算快速组”,
执行:“FF_CALC”,
类型:“存储过程”
},
{
名称:“不需要”,
执行:“不需要”,
类型:“不需要”
},
{
名称:“重复”,
执行:“复制”,
类型:“重复”
}
];
功能移除副本(列表){
返回列表.减少(功能(备注,obj){
var string=JSON.stringify(obj);
if(memo.indexOf(string)=-1){
备忘录.推送(字符串);
}
返回备忘录;
},[]).map(函数(字符串化){
返回JSON.parse(字符串化);
});
}
列表=移除的副本(列表);
控制台日志(列表)代码>将所有元素字符串化,同时检查是否存在相似的元素,然后对其进行解析<但是,code>JSON.stringify()和JSON.parse()的速度并不是非常快。如果对象很大,请记住这一点
var列表=[{
身份证号码:“2566”,
名称:“企业费用”,
执行:“加载尺寸”,
类型:“程序”
},
{
ID:“1234”,
名称:“加载费用事实”,
执行:“加载费用事实”,
类型:“存储过程”
},
{
ID:“RI0031”,
名称:“装货人数”,
执行:“加载\u编制\u事实”,
类型:“存储过程”
},
{
名称:“不需要”,
执行:“不需要”,
类型:“不需要”
},
{
名称:“重复”,
执行:“复制”,
类型:“重复”
},
{
ID:“RI04”,
名称:“快速计算”,
执行:“FF_CALC”,
类型:“存储过程”
},
{
名称:“公式”,
执行:“FF_CALC”,
类型:“ST
{
"EXECUTE|ID|NAME|TYPE": [
{ ID: "2566", NAME: "ENTERPRISE EXPENSE", EXECUTE: "LOAD_DIMENTION", TYPE: "PROCEDURE" },
{ ID: "1234", /* ... */ },
{ ID: "RI0031", /* ... */ },
{ ID: "RI04", /* ... */ },
{ ID: "RID005", /* ... */ }
],
"EXECUTE|NAME|TYPE": [
{ NAME: "Not Required", EXECUTE: "Not Required", TYPE: "Not Required" },
{ NAME: "Duplicate", EXECUTE: "Duplicate", TYPE: "Duplicate" },
{ NAME: "FORMULAS", EXECUTE: "FF_CALC", TYPE: "STORED PROCEDURE" }
]
}