手写js 数组打平
2023-06-13 09:11:15 时间
console.log("array flat");
// 1. 因为只有数组才有 concat 方法,所以这里必须写入初始值 空数组 只能打平一层
// const flat = (list) => list.reduce((a, b) => a.concat(b), []);
// 2. 直接用 concat 和扩展运算符,只能打平一层
// const flat = (list) => [].concat(...list);
// 3. 加一个递归,可以打平深层数组
// const flat = (list) =>
// list.reduce((a, b) => a.concat(Array.isArray(b) ? flat(b) : b), []);
// 4. 支持传入打平的深度
const flat = (list, depth) => {
if (depth === 1) {
return list;
}
return list.reduce((a, b) => {
return a.concat(Array.isArray(b) ? flat(b, depth - 1) : b);
}, []);
};
// 测试用例
console.log(flat([1, 2, 3, [4, 5, [6, 7, [0, 9, 0], 8], 6], 8], 5));
相关文章
- 怎么防止同事用Evil.js的代码投毒
- js遍历数组的几种方法
- 【说站】js中reduce在数组的使用
- 【说站】js数组在头部或尾部插入元素的方法
- 总结几个对象转数组的方法是_js将对象转为数组
- js 中的构造函数,构造函数作用,构造函数和普通函数的区别
- Next.js 中的 SEO
- js 数组去除重复数据-当WPS开始像支持VBA一样支持JS语言时,微软又该何去何从?
- js 数组去除重复数据-Vue.js开发移动端经验总结
- Js常见的几个的全局函数
- 高频js手写题之实现数组扁平化、深拷贝、总线模式_2023-02-23
- js取消页面超链接的方法详解编程语言
- JS动态引入js、CSS动态创建script/link/style标签详解编程语言
- js数组去重详解编程语言
- JS获取数组长度(length属性)
- Vue.js 与MySQL结合,打造高效Web应用程序(vue.js mysql)
- JS将文件传输至MySQL数据库(.js传文件至mysql)
- js有效数字显示指定位数
- greenbrower用到的function.js代码集合
- js判断ie方法集锦(含正则)代码短小经典原创
- javascriptgetElementsByClassName和js取地址栏参数
- 体验js中splice()的强大(插入、删除或替换数组的元素)
- js数组随机字符串(广告不重复)
- 类似php的js数组的in_array函数自定义方法
- js对象转json数组的简单实现案例
- js二维数组定义和初始化的三种方法总结
- JS数组(Array)处理函数整理