需要实现:
1.将二维数组转为一维数组;
2.数组去重
一、将二维数组转为一维数组:
二、数组去重:
function collectPuzzle(...puzzles) { // console.log(puzzles); // console.log(...puzzles); // TODO:在这里写入具体的实现逻辑 // 对所有的拼图进行收集,获取不同拼图类型的结果,并返回 // console.log(puzzles); //1. 二维数组,=》转一维数组 //法1:flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。默认是1 //法2: reduce() concat()用来拼接两个或多个数组 不会改变原数组,返回一个新数组 //reduce()累加器 参数callback callback参数:acc,value,index,arr acc:作为累加器,每次拿到上一次的返回值,value数组的每一项,index:索引 默认从0,arr调用reduce的原数组 //法3: [].concat() // const arr = [1, 2, 3, 4, [5, 6, 7]] // console.log([].concat(...arr)); //法4: toString + split // result1=result1.toString().split(',') //2. 数组去重 双重循环/set() //3. return返回 //(1) return [...new Set (puzzles.flat([1]))] //(2) return [...new Set([].concat(...puzzles))] //(3) return [...new Set(puzzles.reduce((acc,value)=>{ return acc.concat(value) },[]))] //(4)第四个代码效果对但是检测不通过 // return [...new Set(puzzles.toString().split(','))]}// 检测需要,请勿删除module.exports = collectPuzzle;