美文网首页
js数组降维

js数组降维

作者: acsamson | 来源:发表于2019-04-05 11:03 被阅读0次

二维数组降一维

先看代码:

推荐直接使用apply()数组中的每一个元素(还是数组,二维数组的第二维)会被作为参数依次传入到concat中,等同于[].concat([0,0,1],[2,3,3],[4,4,5])

// 方法一
var arr = [[0,0,1],[2,3,3],[4,4,5]];
console.log([].concat.apply([], arr)); // ==> [0, 0, 1, 2, 3, 3, 4, 4, 5]

// 方法二: 但是会转为字符串, 但是该方法适用于多维数组降维一维
var arr = [[0,0,1],[2,3,3],[4,4,5]];
arr.join(); // ==> "0,0,1,2,3,3,4,4,5"
console.log(arr.join().split(','));

注意这里的concat没有括号, 如果要用到有()的concat就要可以写成如下:

var arr = [[0,0,1],[2,3,3],[4,4,5]];
var newArr = [];
for(var i = 0; i < arr.length; i++){
    newArr = newArr.concat(arr[i]);
}
console.log(newArr); // ==> [0, 0, 1, 2, 3, 3, 4, 4, 5]

并且该方法不适用于多维数组, 因为如下:

var arr1 = [1,[2,[[3,4],5],6]];
console.log([].concat.apply([], arr1)); // ==> [1, 2, Array(2), 6]

多维数组降维一维数组

先看代码:

// 和二维数组有一个通用方法就是用, join, 会转为字符串
var arr = [1,[2,[[3,4],5],6]];
arr.join() // ==> "1,2,3,4,5,6"
console.log(arr.join().split(',')); 

当然也可以新建一个空的数组然后放进去, 是一种递归的方法

var arr = [1,[2,[[3,4],5],6]];
var newArr = [];

function fu(arr){
    for(var i=0;i<arr.length;i++){
        // 递归判断是不是数组, 是的话就递归处理
        if(Array.isArray(arr[i])){
            fu(arr[i]);
        }else{
            newArr.push(arr[i]);
        }
    }
}
fu(arr);
console.log(newArr);//[1, 2, 3, 4, 5, 6]

相关文章

  • js数组降维

    二维数组降一维 先看代码: 推荐直接使用apply()数组中的每一个元素(还是数组,二维数组的第二维)会被作为参数...

  • js数组降维

    数组降维 1). Array.prototype.concat.apply([],arr) 通过采用的是apply...

  • 2019-08-13

    js数组降维 reduce+concat reduce(callback, initialValue),第二个参数...

  • C语言数组的升维与降维之说

    C语言数组的升维与降维之说 C语言数组的升维 C语言数组的降维

  • JS算法——数组降维

    一:二维数组 1、遍历降维 2、使用concat arr的每一个元素都是一个数组或参数,作为concat方法的参数...

  • 数组降维

    如何将二维数组降到一维数组? 一 . 我们可以利用双重循环 dimensionalityReduction即为降维...

  • 数组降维

    2019-03-07-09:46于公司 思路:数组转为字符串,然后转为数组关键点在于如何将数组转字符串!!! 比如...

  • swift 高阶函数

    1. flatMap 降纬 组成一个新的一维数组 tip:可以将二维数组转化为一维数组,如果有空值则不会降纬 2....

  • 多维数组的地址问题

    多维数组地址问题采取降维的思想,n维数组的元素为n-1维数组,n维数组名为其元素的首地址。 http://www....

  • JS数组降维--Array.prototype.concat.a

    二维数组降为一维数组 循环降维 此方法思路简单,利用双重循环遍历二维数组中的每个元素并放到新数组中。 concat...

网友评论

      本文标题:js数组降维

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