美文网首页
数组展平

数组展平

作者: 刘宏儿 | 来源:发表于2018-12-01 15:48 被阅读0次

数组展平就是将数组弄成一层

题目:var arr = [1,[2,3],[4,5,[6,7,8,[9,10]]]];将此数组展平
1.思路一:将数组转化为字符串(toString),用split以逗号分割为数组,再通过遍历将数组中的字符串用parseInt转化为数组
代码如下

var arr = [1,[2,3],[4,5,[6,7,8,[9,10]]]];
//将数组转化为字符串
var str = arr.toString(arr);
//console.log(str);//1,2,3,4,5,6,7,8,9,10
//有逗号split切割为数组
var arr2 = str.split(",");
//console.log(arr2);//["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
//数组里的元素是字符串,要将字符串转化为数值,用parseInt()
for(var i=0;i<arr2.length;i++){
    arr2[i]=parseInt(arr2[i]);
}
console.log(arr2);

2.思路二:定义一个空数组,用来存放最后的结果
运用递归的思想,定义一个函数,遍历数组,如果数组元素的类型typeof是“object”,那么再执行一次此函数,否则将元素push到新建的空数组中
代码如下:

var arr=[1,[2,3],[4,5,[6,7,8,[9,10]]]];
var arr2=[];
function f(arr) {
    for(var i=0;i<arr.length;i++){
        if(typeof arr[i]=="object"){
            f(arr[i]);
        }else{
            arr2.push(arr[i]);
        }
    }
    return arr2;
  }
  f(arr);
  console.log(arr2);

相关文章

网友评论

      本文标题:数组展平

      本文链接:https://www.haomeiwen.com/subject/mtbfcqtx.html