2016-02-10 5 views
5

Gibt es eine Methode in lodash, um über ein Array von Arrays zu mappenOrdnen Sie ein Array von Arrays zu

Ich möchte so etwas tun, damit es die Struktur des Arrays hält.

def double(x) { return x*2 } 

_([[1,2],[3,4]]).somemethod(double) == [[2,4],[6,8]] 

Antwort

5

Sie können Sie machen r Code viel sauberer mit ES2015 Pfeil Funktionen:

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

Mit Vanille JS:

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

die Zielumgebung Unter der Annahme, unterstützt sie und/oder sie transpile es mit so etwas wie Babel. –

+1

Pfeilfunktionen haben mit seiner Frage nichts zu tun. – andygoestohollywood

8

Nur _.map es zweimal:

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

oder ohne lodash:

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

Des Weiteren betrachten es6 arrow functions mit:

var doubledArray = array.map(nested => nested.map(element => element * 2));