美文网首页
用js拍平一个多维数组

用js拍平一个多维数组

作者: 喵呜Yuri | 来源:发表于2019-03-21 16:50 被阅读0次

    拍平数组:

    Array.prototype.concat.apply([], [1, [2,3], [4]])    //[1,2,3,4]
    

    深度拍平:

    function flattenDeep(arrs) {
      let result = Array.prototype.concat.apply([], arrs);
      while (result.some(item => item instanceof Array)) {
        result = Array.prototype.concat.apply([], result);
      }
      return result;
    }
    
     console.log(flattenDeep([1,2,[5,[22,11],7,90]]));   //[1,2,5,22,11,7,90]
    

    交换变量:

    [a,b] = [b,a]

    some和every

    有等于3的吗?true
      console.log( arr.some( function( item, index, array ){
            return item == 3;
        }));
    
    所有都等于3吗?false
        console.log( arr.every( function( item, index, array ){
            return item == 3;
        }));
    

    length

    传统Length它并不是用于统计数组中元素的数量,而是代表数组中最高索引的值

    const arrs = [1, 2, 3];
    delete arrs[2]; // 长度依然为3
    
    const arrs = [];
    arrs[5] = 1;
    console.log(arrs.length); // 6
    
    const arrs = [1, 2, 3, 4];
    arrs.length = 2; // arrs = [1, 2]
    arrs.length = 0; // arrs = []
    
    const arrs = [1, 2];
    arrs.length = 5; // arrs = [1, 2,,,,]
    
    const arrs = [1, 2, 3, 4];
    arrs.length = 0; // arrs = []
    
    let a = [1,2,3];
    let b = [1,2,3];
    let a1 = a;
    let b1 = b;
    a = [];
    b.length = 0;
    console.log(a, b, a1, b1); // [], [], [1, 2, 3], []
    
    

    Object.assign()

    const target = { a: 1, b: 2 };
    const source = { b: 4, c: 5 };
    
    const returnedTarget = Object.assign(target, source);
    

    相关文章

      网友评论

          本文标题:用js拍平一个多维数组

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