映射数组数组
Map an array of arrays
lodash 中是否有一种方法可以映射数组
我想做这样的事情,以便它保持数组的结构。
def double(x) { return x*2 }
_([[1,2],[3,4]]).somemethod(double) == [[2,4],[6,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 箭头函数:
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 ));
在 map 语句中使用 es6 解构语法要优雅得多:
array.map(([ a, b ]) => [ a*2, b*2 ]);
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]]
在 ES5 中执行此操作的简单方法:
[].concat(...this.array1.map(ap => ap.subArray))
它可以是一种纠缠:
var Coef = Array.apply(null, Array(3)).map(function(){return
Array.apply(null, Array(4)).map(function(){return 0})})
尽管如此,如果您想在 Gas 中初始化数组,它会很有用
相关文章:
- 无法通过数组映射绑定
- React Native数组映射与多维数组
- 在JavaScript中搜索数组映射的最有效方法
- Undercore将对象的数组映射到以id为键的新对象
- 将一个外部二维数组映射到另一个二维数组(javascript)
- 如何将一个javascript数组映射到另一个具有不同字段名称的数组
- 数组映射和筛选顺序
- 如何使用 JavaScript 将此数组映射到新格式
- 使用 lodash 是将数据从数组映射到单个数组的好方法
- 将 json 数组中的数组映射到 Angularjs 范围
- 如何使用哈希图或数组映射返回总数最高的类别
- 当某些数据是可选的时,使用数组映射
- JavaScript 将数组映射到对象属性
- 角度中的数组映射错误
- 将数组映射变量替换为实际的变量名称/字符串
- 在用数组填充初始化的数组上使用数组映射的意外行为
- JavaScript 数组映射函数不会更改字符串中的元素
- 将 JSON 数组映射到 KO 抛出错误
- javascript 数组映射与应用
- 从 JQuery 中的字符串创建数组映射