I have this 2 dimensional array:
var list = [
['zone_1', 'zone_2'],
['zone_3']
]
I want to merge all elements in the sub-arrays into a single array:
var list = [
'zone_1',
'zone_2',
'zone_3'
]
How can I do that in node.js? It is possible to do it without using a loop or map?
BrokenBinary
7,9493 gold badges46 silver badges55 bronze badges
2 Answers 2
The array .concat method is variadic, and you can use the spread operator to pass each sub-array to it as a separate argument. This makes flattening an array turn into a nice one-liner:
const arr = [ ['zone_1', 'zone_2'], ['zone_3'] ];
console.log([].concat(...arr))
answered Apr 18, 2018 at 0:52
CRice
32.6k5 gold badges63 silver badges75 bronze badges
Sign up to request clarification or add additional context in comments.
1 Comment
Instasea
Thank you very much CRice. It works now. It is the one that I wanted.
Array.prototype.flat() The flat() method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.
const arr = [ ['zone_1', 'zone_2'], ['zone_3'] ];
console.log(arr.flat());
answered Jan 6, 2020 at 17:19
sanjoyAudhikari
811 silver badge1 bronze badge
Comments
lang-js
I don't want to use loop or mapWhy not? Handy language tools are there to be used. An easy single-depth flatmap can be done viaconst output = [].concat(...input.map(arr => arr));list[0]?