好像不是最全的陣列去重方法

2022-09-18 13:57:12 字數 2866 閱讀 8057

這一篇文章,我們講解一下陣列去重。

1.最簡單粗暴地方式,兩重for迴圈

let arr = [9, 5, 6, 5, '1', '1', true, 5, true];

for (var i = 0; i < arr.length; i++)

}}console.log(arr); // [9, 5, 6, "1", true, undefined, null, nan, nan, , ]

// 兩個nan, 因為nan!=nan

2.indexof

let a = ;

for (var i = 0; i < arr.length; i++)

}console.log(a); // [9, 5, 6, "1", true, undefined, null, nan, nan, , ]

// 兩個nan, 因為nan!=nan

3.includes

for (var i = 0; i < arr.length; i++) 

}console.log(a); // [9, 5, 6, "1", true, undefined, null, nan, , ]

4.set

let a = [...(new set(arr))];

console.log(a); // [9, 5, 6, "1", true, undefined, null, nan, , ]

5.filter

let a = arr.filter(function(value, index))

console.log(a);// [9, 5, 6, "1", true, undefined, null, , ]

arr.filter(function(value))

console.log(a);// [9, 5, 6, "1", true, undefined, null, nan, nan, , ]

6.sort

arr = arr.sort(); // 排序,如果相同就會挨著

a.push(arr[0]); // 先放陣列第乙個元素

for (var i = 1; i < arr.length; i++)

}

7.reduce

arr = arr.sort(); 

arr.reduce(function(preval, nowval)

return nowval;

}, a)

arr.reduce(function(preval, nowval), a)

console.log(a); //["1", 5, 6, 9, nan, nan, , , null, true, undefined]

8.hasownproperty

let obj = {};

for (var i = 0; i < arr.length; i++)

}console.log(object.values(obj)); //[9, 5, 6, "1", true, undefined, null, nan, ] 無法判斷物件

9.物件陣列去重方法

我想說一下foreach與map

arr.foreach( function(element, index) );

arr.map(function(element, index));

不同點

let arr = [9,3,6,3,6,3];

arr = arr.foreach( function(element, index) );

console.log(arr); // undefined

arr = arr.map(function(element, index));

console.log(arr); //[10, 4, 7, 4, 7, 4]

let arr = [9,3,6,3,6,3];

arr.foreach( function(element, index)

});

foreach模擬實現

array.prototype.bforeach = function (fn) 

}arr.bforeach(function(element, index));

map模擬實現

array.prototype.map = function (fn) 

return a;

}

好像不是最全的陣列去重方法

這一篇文章,我們講解一下陣列去重。1.最簡單粗暴地方式,兩重for迴圈 let arr 9,5,6,5,1 1 true,5,true for var i 0 i arr.length i console.log arr 9,5,6,1 true,undefined,null,nan,nan,兩個n...

好像不是最全的陣列去重方法

這一篇文章,我們講解一下陣列去重。1.最簡單粗暴地方式,兩重for迴圈 let arr 9,5,6,5,1 1 true,5,true for var i 0 i arr.length i console.log arr 9,5,6,1 true,undefined,null,nan,nan,兩個n...

好像不是最全的陣列去重方法

這一篇文章,我們講解一下陣列去重。1.最簡單粗暴地方式,兩重for迴圈 let arr 9,5,6,5,1 1 true,5,true for var i 0 i arr.length i console.log arr 9,5,6,1 true,undefined,null,nan,nan,兩個n...