Сопоставить массив массивов Есть ли способ в lodash для отображения массива массивов Я хотел бы сделать что-то подобное, чтобы сохранить структуру массива. def double(x) { return x*2 } _([[1,2],[3,4]]).somemethod(double) == [[2,4],[6,8]] Ответ 1 Вы можете сделать свой код намного чище с помощью функций стрелок 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 )); Ответ 2 Просто _.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)); Ответ 3 Это может быть своего рода запутывание: var Coef = Array.apply(null, Array(3)).map(function(){return Array.apply(null, Array(4)).map(function(){return 0})}) Тем не менее, это может быть полезно, если вы хотите инициализировать массив в Gas Ответ 4 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]]
Ответ 1 Вы можете сделать свой код намного чище с помощью функций стрелок 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 ));
Ответ 2 Просто _.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));
Ответ 3 Это может быть своего рода запутывание: var Coef = Array.apply(null, Array(3)).map(function(){return Array.apply(null, Array(4)).map(function(){return 0})}) Тем не менее, это может быть полезно, если вы хотите инициализировать массив в Gas
Ответ 4 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]]