面试题二十一:js/javascript扁平化数组
七娃博客534人阅读
javascript如何实现扁平化数组?这是一道前端面试的老题目了,拍扁数组,考察的是对数组的应该喝处理能力,将多维数组拍扁成一维数组!那么如何实现javascript扁平化数组,七娃整理出来常用的几种方法。
方法1:通过flat()直接拍扁数组
let cc = arr.flat();
方法2:concat() 链接数组,将二维数组转为一维数组,
缺点:3级以上扁平化将失效
let a = [0,1,2,3,[5,6,7,8],[7,8,[111,555,'aaa']]]; let b = [].concat(...a); //[2, 3, 5, 6, 7, 8, Array(2)]
方法3:join方法+map
通过join方法将数组转化为以点隔开的字符串,在使用split把转化的字符串转化成字符串数组,通过map方法将内部字符串转化数字类型
缺点:
对字符串失效
let c = arr.join(',').split(',').map( item => Number(item))
方法4: 函数递归
function flat(arr){ let newO = []; for(let i = 0;i<arr.length;i++){ if(Array.isArray(arr[i])){ newO = newO.concat(flat(arr[i])) }else{ newO.push(arr[i]) } } return newO; }
评论 | 0 条评论
登录之后才可留言,前往登录