写在前面:
判断是否为数组
Array.isArray(arr) || function (arr){
return Object.prototype.toString.call(arr)=='[object Array]'
//{}.toString.call(arr)=='[object Array]'
}
1、两个循环(1分)
2、使用indexof(50分)
Array.prototype.unique = function () {
var newArr = [];
for (var i = 0; i < this.length; i++) {
if (newArr.indexOf(this[i]) == -1) {
newArr.push(this[i]);
}
}
return newArr;
}
var arr = ['a','b',1,4,5,8,4,3,1,'a','1'];
alert(arr.unique());//a,b,1,4,5,8,3,1 indexOf默认调用===,因此将1与'1'认为是不同
3、使用from (99分)
Array.from(new Set(array))
4、扩展运算符(100分)
[...new Set(array)]