南宁市网站建设_网站建设公司_前端开发_seo优化
2025/12/26 16:40:20 网站建设 项目流程
// 实现多种数组去重方法
const arr = [1, 2, 2, 3, 4, 4, 5, 'a', 'a', 'b'];// 方法1:使用 Set
console.log([...new Set(arr)])
// 方法2:使用 filter + indexOf

let newArr=arr.filter((item,index)=>{return arr.indexOf(item)===index
})
console.log(newArr);
// 方法3:使用 reduce
newArr=arr.reduce((prev,next)=>{if(!prev.includes(next)){prev.push(next);}return prev;
},[])
console.log(newArr);
// 方法4:对象属性去重
const newObj={}
arr.map(item=>{newObj[item]=item;
})
console.log(Object.values(newObj))
// 实现数组扁平化(多种方法)
const nestedArray = [1, [2, [3, [4]], 5]];// 期望输出:[1, 2, 3, 4, 5]// 方法1:递归
function arrFlat(arr){const newArr=[];function flat(arr){arr.forEach(element => {if(Array.isArray(element)){flat(element);}else{newArr.push(element);}});}flat(arr);return newArr;
}console.log(arrFlat(nestedArray))
// 方法2:使用 flat 方法
console.log(nestedArray.flat(4))
// 方法3:使用 reduce
function reduceFlat(arr){return arr.reduce((prev, current) => {// 核心:如果当前元素是数组,递归扁平化后合并;否则直接添加return prev.concat(Array.isArray(current) ? reduceFlat(current) : current);}, []); // 初始化累加器为空数组
}
console.log(reduceFlat(nestedArray))
// 方法4:使用扩展运算符

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询