2014-04-21 3 views
1

У меня есть список списков, я хочу объединить их в один список.CoffeeScript: Список слияния списка в один список с использованием lodash (_ .js)

merged = [] 
_.map lists , (each_list) -> 
    merged = _.merge each_list , merged 

Что я делаю неправильно здесь, я получаю только один список из всех списков в агрегированном выпуске.

FYI, ниже блок вызывается внутри final_callback из async.map

ответ

3

Вы можете использовать функцию _.flatten с shallow аргументом True, как этот

var arrays = [[1, [2], 3], [4, [5], 6], [7, [8], 9]]; 
console.log(_.flatten(arrays, true)); 
# [ 1, [ 2 ], 3, 4, [ 5 ], 6, 7, [ 8 ], 9 ] 

Если мы не сглаживать массивы в неглубокой режиме, он будет рекурсивно сгладить все вложенные массивы, например,

console.log(_.flatten(arrays)); 
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] 

L Одаш также имеет аналогичную функцию с тем же именем, _.flatten.

+0

Работал как очарование .. Спасибо! –