bwb*_*ing 13 javascript underscore.js lodash
在lodash中是否有方法映射数组数组
我想做这样的事情,以便它保持数组的结构.
def double(x) { return x*2 }
_([[1,2],[3,4]]).somemethod(double) == [[2,4],[6,8]]
Run Code Online (Sandbox Code Playgroud)
Rad*_*nik 17
只是_.map两次:
var array = [[1, 2], [3, 4]];
var doubledArray = _.map(array, function (nested) {
return _.map(nested, function (element) {
return element * 2;
});
});
Run Code Online (Sandbox Code Playgroud)
或者没有lodash:
var doubledArray = array.map(function (nested) {
return nested.map(function (element) {
return element * 2;
});
});
Run Code Online (Sandbox Code Playgroud)
此外,考虑使用es6箭头功能:
var doubledArray = array.map(nested => nested.map(element => element * 2));
Run Code Online (Sandbox Code Playgroud)
TbW*_*321 10
使用ES2015箭头功能,您可以使代码更清晰:
var array = [[1, 2], [3, 4]];
var double = x => x * 2;
var doubledArray = _.map( array, subarray => _.map( subarray, double ));
Run Code Online (Sandbox Code Playgroud)
使用vanilla JS:
var array = [[1, 2], [3, 4]];
var double = x => x * 2;
var doubledArray = array.map( subarray => subarray.map( double ));
Run Code Online (Sandbox Code Playgroud)
在 map 语句中使用es6 解构语法要优雅得多:
array.map(([ a, b ]) => [ a*2, b*2 ]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44774 次 |
| 最近记录: |