判断是否为数组
判断数组类型的方法: var arr=[1,2,3];
1.检测类的instanceof
console.log(arr instanceof Array) ;true为数组
2.判断数组的__proto__属性和Array的prototype是否相等
console.log(Array.prototype==arr.__proto__);//true为数组
3.判断构造函数constructor
console.log(arr.constructor===Array);//true为数组
- 数组原生方法 isArray()
Array.isArray(arr); //true为数组
数组去重
let arr = [1,1,'true','true',true,true,false,false, undefined,undefined, null,null, NaN, NaN,'NaN','NaN', 0, 0, 'a', 'a',{
},{
}];
1. ES6 Set 去重
Array.from(new Set(arr))
或
[...new Set(arr)]
2. 循环 + indexOf
let newArr = []
for(let i = 0; i < arr.length; i++) {
if(newArr.indexOf(arr[i]) < 0) {
newArr.push(arr[i])
}
}
3. 双重循环for比对
for(let i = 0; i < arr.length; i++) {
for(let j = i + 1; j < arr.length ; j++) {
if(arr[i] === arr[j]) {
arr.splice(j, 1)
j--;
}
}
}
4.includes + 循环方式 //IE可能不支持includes语法
let newArr = []
for(let i = 0; i < arr.length; i++) {
if(!newArr.includes(arr[i])) {
newArr.push