How to flatten a multi-dimensional array?
So our todays problem is we have a multidimensional array we want to convert it to flat array. Say example we have ["@", "#", ["$", "%"], "^", "&", ["*", "+", "-", "/"], "?"] and we want ["@", "#", "$", "%", "^", "&", "*", "+", "-", "/", "?"].
We can do it very simply as bellow -
let symbols =["@", "#", ["$", "%"], "^", "&", ["*", "+", "-", "/"], "?"]
Now use flat()
console.log(symbols.flat()) // ["@", "#", "$", "%", "^", "&", "*", "+", "-", "/", "?"]
So We can use array.flat() method for flatten one level multi-dimensional array. But if more then one level multi-dimensional array?
let symbols2 =["@", "#", [["$", "%"], "^", "&", ["*", "+", "-", "/"]], "?"]
console.log(symbols2.flat()) // ["@", "#", ["$", "%"], "^", "&", ["*", "+", "-", "/"], "?"]
But we want full flat array. Now use Infinity keyword inside flat() method as bellow -
console.log(symbols2.flat(Infinity)) // ["@", "#", "$", "%", "^", "&", "*", "+", "-", "/", "?"]
So we can pass Infinity parameter to array.flat method to full flatten any level multi-dimensional array.