完全删除重复行我有一个JavaScript下面的列表。的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"
},
{
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种性质也,所以检查每个属性是不是解决办法。另外,无论我上网的方式是1维阵列还是删除特定属性的重复。 我怎样才能保持一个包含所有行唯一一个列表?
我能想到的,是比较JSON对象的字符串化版本。像这样:'JSON.stringify(obj1)=== JSON.stringify(obj2)'。我猜想这个速度足够快,但元素属性的顺序很重要。这是一个问题吗? – Scalpweb
没有订单不是问题。但即使我将每一行与所有其他行进行比较,这个过程是不是会太慢?随着列表大小的增加,复杂度将增加。 –
“善良的用户”的答案正是我想到的。 JSON.stringify过程是比较JS中2个对象的最快方法。我会说你必须制定一些基准来检查它是否足够快,但它应该没问题。 – Scalpweb