繁体   English   中英

在Javascript中从2D数组中删除重复项

[英]Removing duplicates from 2d array in Javascript

删除像下面这样的数组上的重复项的好算法是什么...

    var allwords = [

    ['3-hidroxitiramina', '3-hidroxitiramina'],

    ['3-hidroxitiramina', '3-hidroxitiramina'],

    ['3-in-1 block', 'bloqueo 3 en 1'],

    ['abacterial', 'abacteriano'],

    ['abacteriano', 'abacteriano'],

    ['abciximab', 'abciximab'],

...

只是为了澄清一下,我要

['3-hidroxitiramina', '3-hidroxitiramina'],

要删除,所以只有一个

您可以将对象用作关联数组/哈希(如果您是指在第一维中为dups)

var allWordsObj = {};
for( var i = 0; i < allWords.length; i++ ) {
    allWordsObj[allWords[i][0]] = allWords[i][1];
}

alert( allWordsObj['3-hidroxitiramina'] );

尝试这个:

var len = allwords.length, i, j, first;
for (i=0; i<len-1; i++) {
    first = allwords[i].toString();
    for (j=i+1; j<len; j++) {
        if (first === allwords[j].toString()) {
            allwords.splice(j, 1);
            len--;
        }
    }
}

[edit]:误读,在阅读了您的说明后,我建议:

 var i = allwords.length-1, prev='';
 do {
     if (allwords[i].join('/') === prev) {
        allwords.splice(i,1);
     }
     prev = allwords[i].join('/');
 } while (i-- && i>-1);

(反转循环是优化步骤)

暂无
暂无

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

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