如果我有这些行,例如:


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);
}

最佳答案

您可以像这样使用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

希望能帮助到你

关于javascript - Javascript删除包含相同数字的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35311652/

10-17 03:14