方法1 es6去重:
Array.from(new Set(arr))
方法2:
Array.prototype.distinct = function(){
var arr = this,
result = [];
for (var i = 0; i < arr.length; i++) {
for (var j = i+1; j < arr.length; j++) {
if (arr[i]===arr[j]) {
j = ++i;
}
}
result.push(arr[i])
}
return result;
}
var arr = [1,2,4,1,5,4,2];
arr.distinct();
方法3 利用indexof:
function distinct(arr) {
var nArr = [];
for (var i = 0; i < arr.length; i++) {
if (nArr.indexOf(arr[i]) == -1) {
nArr.push(arr[i])
}
}
return nArr;
}
var arr = [1,2,4,1,5,4,2];
var n = distinct(arr);
console.log(n)
方法4 利用对象的属性不能相同的特点进行去重:
Array.prototype.distinct = function (){
var arr = this,
i,
obj = {},
result = [],
len = arr.length;
for(i = 0; i< arr.length; i++){
if(!obj[arr[i]]){
obj[arr[i]] = 1;
result.push(arr[i]);
}
}
return result;
};
var arr = [1,2,4,1,5,4,2];
var b = a.distinct();
console.log(b)
方法5 sort()
var arr = [12,5,4,18,30];
arr.sort(function(n1,n2){
return n1 - n2
})