您当前的位置: 首页 >  Java

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JavaScript实现纯数组扁平化(数组降维)

发布时间:2021-12-02 23:51:39 ,浏览量:0

目录
  • 1、使用reduce方法和递归实现、concat、isArray
  • 2、使用toString和split实现、map、Number
  • 3、使用join和split实现、join、map、parseInt
  • 4、使用递归实现、isArray、concat、push、map
  • 5、使用es6的扩展运算符实现、concat
  • 6、使用whil、some和concat实现、isArray、some
  • 7、相关文章
1、使用reduce方法和递归实现、concat、isArray
function flatten(arr) { return arr.reduce((result, item) => { return result.concat(Array.isArray(item) ? flatten(item) : item); }, []); } console.log(flatten([1, [2, 3, [4, 5]]])); // [1, 2, 3, 4, 5] 
2、使用toString和split实现、map、Number
function flatten(arr) { // 返回字符串类型的数组 // return arr.toString().split(","); // 最终需要返回数字类型的数组 return arr.toString().split(",").map((item) => Number(item)); } console.log(flatten([1, [2, 3, [4, 5, [6]]]])); // [1, 2, 3, 4, 5, 6] 
3、使用join和split实现、join、map、parseInt
function flatten(arr) { return arr.join(",").split(",").map((item) => parseInt(item)); } console.log(flatten([1, [2, 3, [4, 5]]])); 
4、使用递归实现、isArray、concat、push、map
function flatten(arr) { let res = []; arr.map((item) => { if (Array.isArray(item)) { res = res.concat(flatten(item)); } else { res.push(item); } }); return res; } console.log(flatten([1, [2, 3, [4, 5]]])); 
5、使用es6的扩展运算符实现、concat
console.log([].concat(...[1, 2, 3, [4, 5]])); 

有缺陷:当嵌套大于两层的时候就无法实现扁平化,只能实现两层以内的扁平化。

6、使用whil、some和concat实现、isArray、some
function flatten(arr) { while (arr.some((item) => Array.isArray(item))) arr = [].concat(...arr); return arr; } console.log(flatten([1, [2, 3, [4, 5]]])); 
7、相关文章

博客园-js5种方式实现数组扁平化

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.7005s