Map an array of arrays

后端 未结 6 1780
太阳男子
太阳男子 2021-02-07 02:17

Is there a method in lodash to map over an array of arrays

I would like to do something like this so that it keeps the structure of the array.

def double         


        
相关标签:
6条回答
  • 2021-02-07 02:38

    Just _.map it twice:

    var array = [[1, 2], [3, 4]];
    var doubledArray = _.map(array, function (nested) {
        return _.map(nested, function (element) {
            return element * 2;
        });
    });
    

    Or without lodash:

    var doubledArray = array.map(function (nested) {
        return nested.map(function (element) {
            return element * 2;
        });
    });
    

    Furthermore, consider using es6 arrow functions:

    var doubledArray = array.map(nested => nested.map(element => element * 2));
    
    0 讨论(0)
  • 2021-02-07 02:49

    You can make your code much cleaner with ES2015 arrow functions:

    var array = [[1, 2], [3, 4]];
    var double = x => x * 2;
    var doubledArray = _.map( array, subarray => _.map( subarray, double ));
    

    Using vanilla JS:

    var array = [[1, 2], [3, 4]];
    var double = x => x * 2;
    var doubledArray = array.map( subarray => subarray.map( double ));
    
    0 讨论(0)
  • 2021-02-07 02:49

    The simple way to do that at ES5:

    [].concat(...this.array1.map(ap => ap.subArray))

    0 讨论(0)
  • 2021-02-07 02:51
    const deepMap=(input,callback)=>input.map(entry=>entry.map?deepMap(entry,callback):callback(entry))
    
    //test 
    
    deepMap([1,2,3,[1,2]],x=>x*2) // [1,4,9,[1,4]]
    
    0 讨论(0)
  • 2021-02-07 02:54

    It's much more elegant to use the es6 destructuring syntax within your map statement:

    array.map(([ a, b ]) => [ a*2, b*2 ]);
    
    0 讨论(0)
  • 2021-02-07 02:55

    It can be a kind of entangle:

    var Coef = Array.apply(null, Array(3)).map(function(){return
    Array.apply(null, Array(4)).map(function(){return 0})})
    

    Nevertheless, it can be useful if you want to initialize an array in Gas

    0 讨论(0)
提交回复
热议问题