Concat 3 массива в 1 массив в javascript/подчеркивание Есть ли короткий путь/наилучшая практика для конкатенации 3 массивов в 1 массив? var arr = [], arr1 = [ 1 , 2 , 3 ], arr2 = [ 4 , 5 , 6 ], arr3 = [ 7 , 8 , 9 ]; arr = arr.concat(arr1); arr = arr.concat(arr2); arr = arr.concat(arr3); Ответ 1 Самое короткое (и самое быстрое) решение - arr = arr1.concat(arr2, arr3); Альтернатива: arr = arr.concat(arr1, arr2, arr3) arr = Array.prototype.concat(arr1, arr2, arr3) arr = [].concat(arr1, arr2, arr3) Ответ 2 Там не так много сделать. Вы можете упростить его: arr = arr.concat(arr1).concat(arr2).concat(arr3) Или см. @Radko Dinev ответ за еще более простой (и лучший) способ сделать это. Если у вас есть массив массивов (с переменным числом массивов), вы можете попробовать: var m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; var new_m = []; new_m.concat.apply(new_m, m); Ответ 3 Я бы использовал _.flatten. var arr = [[1,2,3], [4,5,6], [7,8,9]]; var result = _.flatten(arr) // [1,2,3,4,5,6,7,8,9] Ответ 4 _.reduce(arrays, function(result, arr) { return result.concat(arr) }, []) Ответ 5 Синтаксис распространения упрощает конкатенацию: arr = [...arr1, ...arr2, ...arr3] Вы можете даже включить элементы без массива inline: arr = [...arr1, 42, ...arr2, ...arr3] Ответ 6 Более гибкий способ: var arraysToConcat = [arr1, arr2, arr3]; var arr = Array.prototype.concat.apply([], arraysToConcat);
Ответ 1 Самое короткое (и самое быстрое) решение - arr = arr1.concat(arr2, arr3); Альтернатива: arr = arr.concat(arr1, arr2, arr3) arr = Array.prototype.concat(arr1, arr2, arr3) arr = [].concat(arr1, arr2, arr3)
Ответ 2 Там не так много сделать. Вы можете упростить его: arr = arr.concat(arr1).concat(arr2).concat(arr3) Или см. @Radko Dinev ответ за еще более простой (и лучший) способ сделать это. Если у вас есть массив массивов (с переменным числом массивов), вы можете попробовать: var m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; var new_m = []; new_m.concat.apply(new_m, m);
Ответ 3 Я бы использовал _.flatten. var arr = [[1,2,3], [4,5,6], [7,8,9]]; var result = _.flatten(arr) // [1,2,3,4,5,6,7,8,9]
Ответ 5 Синтаксис распространения упрощает конкатенацию: arr = [...arr1, ...arr2, ...arr3] Вы можете даже включить элементы без массива inline: arr = [...arr1, 42, ...arr2, ...arr3]
Ответ 6 Более гибкий способ: var arraysToConcat = [arr1, arr2, arr3]; var arr = Array.prototype.concat.apply([], arraysToConcat);