

























// 实现多种数组去重方法 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:使用扩展运算符
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。