javascript中是否有unique()函数来删除数字数组中的类似元素?

Mis*_*hko 7 javascript arrays jquery unique

我有一系列数字,如:[1,4,7,1,2,1,3,1,4].

我想删除重复的元素并对结果进行排序,即所需的结果是:[1,2,3,4,7].

是否有内置的Javascript/jQuery函数来执行此操作,或者我必须编写自己的函数?

Tim*_*own 8

不,没有内置的东西.此外,您需要知道默认排序是词法,因此[9, 1, 10].sort()将返回[1, 10, 9].

以下内容将对数组中的重复项进行排序和删除:

function sortAndRemoveDuplicates(arr) {
    arr.sort( function(a, b) { return a - b; } );
    var copy = arr.slice(0);
    arr.length = 0;

    for (var i = 0, len = copy.length; i < len; ++i) {
        if (i == 0 || copy[i] != copy[i - 1]) {
            arr.push(copy[i]);
        }
    }
    return arr;
}

var arr = [1, 4, 7, 1, 2, 1, 3, 10, 1, 4, 10];
sortAndRemoveDuplicates(arr);
console.log(arr); // [1, 2, 3, 4, 7, 10]
Run Code Online (Sandbox Code Playgroud)