Javascript删除包含相同数字的行

时间:2016-02-10 09:47:02

标签: javascript

如果我有这些行,例如:

  • 11 12 13
  • 13 12 11
  • 12 11 13
  • 12 12 12

如何删除具有相同数字的行(我的示例中前3行)并且只留下其中一行?

脚本之后的示例行应该是:

  • 11 12 13
  • 12 12 12

我不知道如何做到这一点我真的需要帮助。

我试过排序和过滤,这就是我得到的......

https://jsfiddle.net/Ltoycjae/1

我正在使用来自SO的另一个人的这种排序和过滤功能

function sortByFrequencyAndRemoveDuplicates(array) {
    var frequency = {}, value;

    // compute frequencies of each value
    for(var i = 0; i < array.length; i++) {
        value = array[i];
        if(value in frequency) {
            frequency[value]++;
        }
        else {
            frequency[value] = 1;
        }
    }

    // make array from the frequency object to de-duplicate
    var uniques = [];
    for(value in frequency) {
        uniques.push(value);
    }

    // sort the uniques array in descending order by frequency
    function compareFrequency(a, b) {
        return frequency[b] - frequency[a];
    }

    return uniques.sort(compareFrequency);
}

1 个答案:

答案 0 :(得分:1)

您可以像这样使用JS的分割和数组排序功能

var arr = [
             '11 12 13'
            ,'11 12 13'
            ,'13 12 11'
            ,'12 13 11'
            ,'12 12 12'
            ];
    keys = [];        


function getKey(s) {
    return s.split(' ').sort().join('-')
}        

for (var i in arr){
    var key = getKey(arr[i]);
    if (keys.indexOf(key)==-1){
        keys.push(key);
        console.log(arr[i])
    }
}

你可以在这里https://repl.it/Bl1i/0

运行它

希望有所帮助