数组扁平化
const arr = [1, [2, [3, [4, 5]]], 6];
const res1 = arr.flat(Infinity); //方法1:数组flat方法
const res2 = JSON.parse('['+ JSON.stringify(arr).replace(/\[|\]/g,'').split(',') +']') //方法2:JSON加正则的方法
function flatten(arr){
return arr.reduce((acc,cur)=>acc.concat(Array.isArray(cur)?flatten(cur):cur),
[])
};
const res3 = flatten(arr); //方法3:reduce+递归
数组去重
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
// => [1, '1', 17, true, false, 'true', 'a', {}, {}]
const res1 = Array.from(new Set(arr)); //方法1
function unique(arr){
let result = [];
arr.forEach(element => {
if(result.indexOf(element)===-1){ //获取使用include
result.push(element);
}
});
return result
}
var res2 = unique(arr);
console.log(res); //方法2