1.原生js提供的扁平化数组的方式 flat( ) ,但是此方法只适用于扁平二维数组,如果要扁平多维数组就需要在flat后面加上infinity
复制代码
1
2
3
4
5
6
7
8<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. 采用递归的方式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27<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>
最后
以上就是怕黑蓝天最近收集整理的关于多维数组扁平化的方法的全部内容,更多相关多维数组扁平化内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复