我是靠谱客的博主 怕黑蓝天,最近开发中收集的这篇文章主要介绍多维数组扁平化的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.原生js提供的扁平化数组的方式 flat( ) ,但是此方法只适用于扁平二维数组,如果要扁平多维数组就需要在flat后面加上infinity

<script type="text/javascript">
var arr = [1, 3, 4, '吃饭', '睡觉', [5, 6, 'apple', [7, 8, 'running', 'skipping'], 'banner']]
console.log(arr.flat());//打印结果为[1, 3, 4, "吃饭", "睡觉", 5, 6, "apple", Array(4), "banner"]
//打印的结果中[7, 8, 'running', 'skipping']作为一个元素存在,因为flat()默认之扁平化二维数组
console.log(arr.flat(Infinity));//打印的结果为[1, 3, 4, "吃饭", "睡觉", 5, 6, "apple", 7, 8, "running", "skipping", "banner"]
//可以将多个数组都扁平化为一维数组
</script>

2. 采用递归的方式

<script type="text/javascript">
//扁片化数组
var arr = [1, 3, 4, '吃饭', '睡觉', [5, 6, 'apple', [7, 8, 'running', 'skipping'], 'banner']]
function flatter(arr){
//此代码的意思是接受一个数组作为参数
var newArr = [ ];
// 这个空数组用于处理扁平化之后的数组元素
function fn(date){
//如果date是一个数组就需要对date经行遍历
for(var i=0;i<date.length;i++){
var tem = date[i];//使用tem储存每一个数组的元素
if(Array.isArray(tem)) { //表示如果tem是一个数组,则执行下面的函数
fn(tem)
//调用fn函数,并传入一个实参
}else{
newArr.push(tem);//此代码的意思是,如果不是一个数组就把每个元素push到newArr 这个数组中
}
}
}
fn(arr) //表示调用上面的fn函数,并且传入一个实参arr
return newArr //表示返回这个结果,讲这个结果返回给这个函数的调用者
}
let p = flatter(arr) //表示返回这个结果,并且赋值给p
console.log(p); //打印结果为[1, 3, 4, "吃饭", "睡觉", 5, 6, "apple", 7, 8, "running", "skipping", "banner"]
//上面的代码执行顺序是:函数flatter(arr)先被调用,然后执行函数里面的内容。然后执行fn(date)函数,最后返回执行后的结果,然后在打印这个结果
</script>

最后

以上就是怕黑蓝天为你收集整理的多维数组扁平化的方法的全部内容,希望文章能够帮你解决多维数组扁平化的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部