代码之家  ›  专栏  ›  技术社区  ›  Chris James

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

  •  0
  • Chris James  · 技术社区  · 15 年前

    下面是一个很好的算法来删除阵列上的重复项。。。

        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'],
    

    3 回复  |  直到 15 年前
        1
  •  0
  •   meouw    15 年前

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

    var allWordsObj = {};
    for( var i = 0; i < allWords.length; i++ ) {
        allWordsObj[allWords[i][0]] = allWords[i][1];
    }
    
    alert( allWordsObj['3-hidroxitiramina'] );
    
        2
  •  0
  •   Gumbo    15 年前

    试试这个:

    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--;
            }
        }
    }
    
        3
  •  0
  •   Romhein    15 年前

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