根据Javascript中的一列删除多列中的重复项

时间:2017-11-09 11:35:29

标签: javascript jquery arrays multidimensional-array

根据 cont.id 删除重复项,然后删除相同位置的整行 cont.id,cont.name,cont.class

var all_data = []
for (var i=0; i< data.class_ids.length ; i++) {
    var cont=data.class_ids[i];
    all_data.push(["",cont.id,cont.name,cont.classes]);
}

得到这样的输出
cont.id cont.name cont.classes
A_1_VII VII V2
A_1_VII VII V2
A_1_VII VII V2
B_1_XIV XIV V3
B_2_XVI XVI v3

<小时/> 但我想要这样 的 cont.id cont.name cont.classes
A_1_VII VII V2
B_1_XIV XIV V3
B_2_XVI XVI v3


有没有办法在html中使用 id = table_data&amp; tr 然后检查每个tr 下一行/ tr,如果相同,则删除表数据中的下一行
任何帮助!!

2 个答案:

答案 0 :(得分:3)

也许这会有所帮助:

&#13;
&#13;
var data = [
  {id: 'aaa', val1: 'sdfsd'},
  {id: 'aaa', val1: 'sdfsd'},
  {id: 'aaa', val1: 'sdfsd'},
  {id: 'bbb', val1: 'sdfsd'},
  {id: 'bbb', val1: 'sdfsd'},
  {id: 'ccc', val1: 'sdfsd'}
]

var woDuplicates = _.uniqBy(data, 'id')

console.log(woDuplicates)
&#13;
<script src="https://unpkg.com/lodash"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

id存储在一个集合中,然后仅当项目中all_data不存在时才将项目推送到id

var all_data = []
var ids = new Set();
for (var i = 0; i < data.class_ids.length; i++) {
  var cont = data.class_ids[i];
  if !ids.has(cont.id) {
    ids.add(cont.id);
    all_data.push(["", cont.id, cont.name, cont.classes]);
  }
}

有关javaScript集的更多信息,请参阅here。可以比数组更快地搜索集合。