需要实现:
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参数:a***,value,index,arr a***:作为累加器,每次拿到上一次的返回值,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((a***,value)=>{
return a***.concat(value)
},[]))]
//(4)第四个代码效果对但是检测不通过
// return [...new Set(puzzles.toString().split(','))]
}
// 检测需要,请勿删除
module.exports = collectPuzzle;