Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-从数组中删除完全重复的行_Javascript_Arrays - Fatal编程技术网

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

我有一个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个以上的属性,因此检查每个属性不是解决方案。另外,无论我上网的方式是一维数组还是通过特定属性删除重复项。
如何维护包含所有唯一行的列表?

这将从对象数组中删除精确的重复项

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" }
    ]
}