方法1 es6去重:
// arr 為傳入的數(shù)組對(duì)象
Array.from(new Set(arr))?
方法2:
// 雙for循環(huán),外層循環(huán)咽袜,內(nèi)層比較妨马,如果有相同就跳過,不同就push進(jìn)新數(shù)組弱恒,在return新數(shù)組
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(); //[1,5,4,2]
方法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) // [1,2,4,5]
方法4 利用對(duì)象的屬性不能相同的特點(diǎn)進(jìn)行去重:
Array.prototype.distinct = function (){
? ? var arr = this,
? ? ? ? i,
? ? ? ? obj = {},
? ? ? ? result = [],
? ? ? ? len = arr.length;
? ? for(i = 0; i< arr.length; i++){
? ? ? ? ? if(!obj[arr[i]]){? ? //如果能查找到辨萍,證明數(shù)組元素重復(fù)了
? ? ? ? ? ? ? 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) //[1, 2, 4, 5]
方法5 sort()
var arr = [12,5,4,18,30];
arr.sort(function(n1,n2){
? ? return n1 - n2
})