繁体   English   中英

检查多维数组中的重复元素,仅删除一个元素

[英]Check duplicated elements in moredimensional array and delete only one element

我想删除多维数组中重复的元素之一。 到目前为止,这是我的代码:

for (var i = 0; i< blog.length; i++){
  for (var i = 0; i< blog.length; i++){
     var check1 = blog[i][1];
     var check2 = blog[j][1];
     //check1 = 120;;200  check2 = 130;;180
     if (check1 == check2){
        blog[i].splice(i, 1);
     }
  }
}
  • 我只想删除重复对中的第一个元素。
  • 你能给我一个更聪明的代码吗?

循环向下的阵列和存储在发现值作为密钥中的对象 ,所以你可以做一个快速in检查。

var blog = [['a', 0], ['b', 1], ['c', 2], ['d', 3], ['e', 0]]; // test var

var i = blog.length, // var to loop over
    o = {}, // obj to hold keys
    b2 = []; // temporary array
while (i--) { // looping down
    if (false === blog[i][1] in o) { // if not already seen
        o[blog[i][1]] = 1; // mark as seen
        b2[b2.length] = blog[i]; // add to temporary array
    }
}
blog = b2.reverse(); // temporary array is backwards so reverse it and set `blog`
// [["b", 1], ["c", 2], ["d", 3], ["e", 0]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM