flatten an array in javascript

JavaScript
// flat(depth), 
// depth is optional: how deep a nested array structure 
//		should be flattened.
//		default value of depth is 1 

const arr1 = [1, 2, [3, 4]];
arr1.flat(); 
// [1, 2, 3, 4]

const arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]

const arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]

const arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
arr4.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]var arrays = [
  ["$6"],
  ["$12"],
  ["$25"],
  ["$25"],
  ["$18"],
  ["$22"],
  ["$10"]
];
var merged = [].concat.apply([], arrays);

console.log(merged);// Although this now may be an older version of how to faltten an 
// array of arrays. I still want to post it so some may have an understanding 
// of how it works

function falltenArray(arr) {
  
  let result = [...arr];
  let flattened = false;
  let counter = 0;
  
  while (flattened === false){
	// checks to see if the element at the counter index is an array
      if (Array.isArray(result[counter])){
        // unpacks the current array element back into the array
        result.splice(counter, 1, ...result[counter]);
        // if so the counter should start at the beginning of the array
        counter = 0;
        
      } else {
        counter += 1;
      }

      if (counter === result.length){
        flattened = true;
      }
  }
  
  return result;
}function flatten(arr) {
  const result = []

  arr.forEach((i) => {
    if (Array.isArray(i)) {
      result.push(...flatten(i))
    } else {
      result.push(i)
    }
  })
  
  return result
}

// Usage
const nested = [1, 2, 3, [4, 5, [6, 7], 8, 9]]

flatten(nested) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Source

Also in JavaScript: