js常用数组操作
数组操作
数组扁平化
redece + concat 扁平化
const flat1 = (array) => {
return array.reduce((result, it) => {
return result.concat(Array.isArray(it) ? flat1(it) : it)
}, [])
}
js原生的flat方法
// js原生的flat方法
const flat2 = (array) => {
return array.flat(Infinity)
}
数组去重
参考:https://www.jb51.net/article/231821.htm
function unique(arr) {
return Array.from(new Set(arr))
}
Array.from + Set 数组去重
function unique(arr) {
return Array.from(new Set(arr))
}
… + Set 数组去重
function unique(arr) {
return [...new Set(arr)]
}
循环 + indexOf 方法去重
var arr =[1,-5,-4,0,-4,7,7,3];
function unique(arr){
var arr1 = []; // 新建一个数组来存放arr中的值
for(var i=0,len=arr.length;i<len;i++){
if(arr1.indexOf(arr[i]) === -1){
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr)); // 1, -5, -4, 0, 7, 3
}
filter + indexOf 方法去重
const arr = [1,2,3,3,3,3,3,2,2,3];
const result = (arr) => {
return arr.filter((item,index) => {
return arr.indexOf(item) === index
})
}
console.log(result(arr));