2016-02-10 4 views
5

配列の配列をマップするメソッドがありますか配列の配列をマップする

これは配列の構造を保持するようにしたいと思います。

def double(x) { return x*2 } 

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

答えて

5

あなたがあなたを作ることができます非常にクリーンES2015矢印機能を備えたRコード:

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

バニラJSを使用して:

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

ターゲット環境を想定し、それらをサポートし、および/または、彼らはバベルのようなもので、それをtranspile。 –

+1

arrow関数は彼の質問とは何の関係もありません。 – andygoestohollywood

8

だけ_.mapそれ二回:

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

またはlodashなし:

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

さらに、es6 arrow functionsの使用を検討:

var doubledArray = array.map(nested => nested.map(element => element * 2)); 
関連する問題