数组
1-1数组去重
1. es6的new Set
let arr=[1,2,2,3]
let arrNew=[...new Set(arr)]
console.log(arrNew)//[1,2,3]
2. 遍历旧数组往新数组中添加唯一的元素
function unique(arr) {
var newArr = []
for (var i = 0; i < arr.length; i++) {
f (newArr.indexOf(arr[i])===-1) {//方式1
newArr.push(arr[i])
}
// if (!newArr.includes(arr[i])) {//方式2
// newArr.push(arr[i])
//}
}
return newArr
}
console.log(unique(arr))//[1,2,3]
3. 利用Map数据结构去重
function unique(){
let map =new Map()
let arr=new Array()
for(let i=0;i<arr.length;i++){
if(map.has(arr[i])){//如果有key值,它是把元素值作为key
map.set(arr[i],true)
}else{
map.set(arr[i],false)//如果没有该key值
array.push(arr[i])
}
}
return array
}
console.log(unique([1,2,2,3]))
解析:
把每一个元素作为key值存到Map中,由于Map不会出现相同的key,所以最终得到去重后的结果。
1-2数组展开
1. flat方法
let arr = [1,2,[3,4],[5[6,7]]]
let arr1 = arr.flat(Infinity)//[1,2,3,4,5,6,7]
2.join,split
let arr = [1,2,[3,4],[5[6,7]]]
let arr1 = arr.join().split(",") //["1", "2", "3", "4", ""]
3.toString,split
let arr = [1,2,[3,4],[5[6,7]]]
let arr1 = arr.toString().split(",") //["1", "2", "3", "4", ""]
1-3数组合并
1. es6展开合并
let arr1 = [1,2]
let arr2 = [3,4]
let arr = [...arr1,...arr2]//[1,2,3,4]
2. concat
let arr = arr1.concat(arr2)
1-4判断数组
instanceof
console.log(arr instanceof Array)
constructor
console.log(arr.constructor === Array)
Array.isArray
console.log(Array.isArray(arr))
toString
console.log(Object.prototype.toString.call(arr) === "[object Array]")
判断是否有数组的push等方法
console.log(!!arr.push && !!arr.concat)