这篇文章主要介绍了JS数组扁平化(flat)方法总结详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下

需求:数组=>一维数组

let ary = [1, [2, [3, [4, 5]]], 6];
let str = JSON.stringify(ary);

第0种处理:直接的调用

arr_flat = arr.flat(Infinity);

第一种处理

ary = str.replace(/(\[\]))/g, '').split(',');

第二种处理

str = str.replace(/(\[\]))/g, '');
str = '[' + str + ']';
ary = JSON.parse(str);

第三种处理:递归处理

let result = [];
let fn = function(ary) {
for(let i = 0; i < ary.length; i++) }{
let item = ary[i];
if (Array.isArray(ary[i])){
fn(item);
} else {
result.push(item);
}
}
}

第四种处理:用 reduce 实现数组的 flat 方法

function flatten(ary) {
return ary.reduce((pre, cur) => {
return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
})
}
let ary = [1, 2, [3, 4], [5, [6, 7]]]
console.log(ary.MyFlat(Infinity))

第五种处理:扩展运算符

while (ary.some(Array.isArray)) {
ary = [].concat(...ary);
}

这是一个比较实用而且很容易被问到的问题,欢迎大家交流补充。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
港媒:直播销售成中国热门趋势 用户规模已5.26亿

港媒:直播销售成中国热

在新冠疫情迫使传统企业接受这种新型销售渠道,以便与封
格力“反咬”美的 专家提醒避免内耗

格力“反咬”美的 专

美的集团相关人士向第一财经记者表示,美的集团控股子公
格力“手撕”美的弄虚作假还屡次中标 回应来了

格力“手撕”美的弄虚

作为多年的竞争对手,格力和美的一直在互撕,现在究竟咋回
触手直播App官网无法访问:平台在协调善后 处理完会宣布

触手直播App官网无法

7月6日,记者发现,触手直播的App和官网都“挂了”。一位
头部主播频被挖腰部主播不赚钱 风口下的MCN有多尴尬?

头部主播频被挖腰部主

MCN类似于国内娱乐圈的经纪公司,但又没办法像经纪公司
格力“开撕”美的:发票信息不一致,谁在弄虚作假?

格力“开撕”美的:发票

7月6日,格力电器官方微博发文公开质疑美的在中国移动招
最新文章
Vue实现图片与文字混输效果

Vue实现图片与文字混

用多了 JQuery ,习惯了使用JQuery的API操作 DOM ,几乎忘
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

Vue实现点击当前元素

这篇文章主要介绍了Vue实现点击当前元素以外的地方隐
Vue实现验证码功能

Vue实现验证码功能

这篇文章主要为大家详细介绍了Vue实现验证码功能,文中
JS实现的雪花飘落特效示例

JS实现的雪花飘落特效

这篇文章主要介绍了JS实现的雪花飘落特效,结合实例形
微信小程序实现图片压缩

微信小程序实现图片压

这篇文章主要为大家详细介绍了微信小程序实现图片压缩
JavaScript实现京东放大镜效果

JavaScript实现京东放

这篇文章主要为大家详细介绍了JavaScript实现京东放大