多维数组转为一维数组

转成字符串后转成数组

let tempArr = [1,[2,3],[4,5,[6,7]]];
let result_str1 = tempArr.join(',').split(',');
console.log(result_str1); //  ["1", "2", "3", "4", "5", "6", "7"]

缺点: 如果数组中的各个项是number,将不可避免的转为字符串。

改进:

使用了map进行再次遍历。

这种情况只适用于数组中各个项都是number类型或string类型的情况。

function unid(arr){
      let result_str1 = arr.join(',').split(',');
      let result_number = result_str1.map(item=>{
          return Number(item);
      });
      return result_number;
}
console.log(unid(tempArr)); // [1, 2, 3, 4, 5, 6, 7]

递归

let result = [],
    tempArr5 = ['1',2,[3,4,[5,6]],7];
    function unid1(arr){
        for(let item of arr){
           if(Object.prototype.toString.call(item).slice(8,-1)==='Array'{
                unid1(item);
            }else{
                result.push(item);
            }
        }
        return result;
}
console.log(unid1(tempArr5)); // ["1", 2, 3, 4, 5, 6, 7]        

 

posted @ 2021-03-03 14:31  Panda的前端笔记  阅读(116)  评论(0)    收藏  举报