【发布时间】:2016-05-21 10:17:00
【问题描述】:
lodash 中是否有一种方法可以映射数组数组
我想做这样的事情,以保持数组的结构。
def double(x) { return x*2 }
_([[1,2],[3,4]]).somemethod(double) == [[2,4],[6,8]]
【问题讨论】:
标签: javascript underscore.js lodash
lodash 中是否有一种方法可以映射数组数组
我想做这样的事情,以保持数组的结构。
def double(x) { return x*2 }
_([[1,2],[3,4]]).somemethod(double) == [[2,4],[6,8]]
【问题讨论】:
标签: javascript underscore.js lodash
在 map 语句中使用 es6 destructuring syntax 会更优雅:
array.map(([ a, b ]) => [ a*2, b*2 ]);
【讨论】:
在 ES5 中做到这一点的简单方法:
[].concat(...this.array1.map(ap => ap.subArray))
【讨论】:
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]]
【讨论】:
可以是一种纠缠:
var Coef = Array.apply(null, Array(3)).map(function(){return
Array.apply(null, Array(4)).map(function(){return 0})})
不过,如果你想在 Gas
中初始化一个数组,它会很有用【讨论】:
只需_.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));
【讨论】:
您可以使用 ES2015 箭头函数使您的代码更简洁:
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 ));
【讨论】: