flatten()

The flatten method flattens a multi-dimensional collection into a single dimension:

const collection = collect({
  club: "Liverpool",
  players: ["Salah", "Firmino", "Mané"]
});

const flattened = collection.flatten();

flattened.all();

//=> ['Liverpool', 'Salah', 'Firmino', 'Mané'];

You may optionally pass the function a "depth" argument:

const collection = collect({
  Apple: [
    {
      name: "iPhone 6S",
      brand: "Apple"
    }
  ],
  Samsung: [
    {
      name: "Galaxy S7",
      brand: "Samsung"
    }
  ]
});

const flattened = collection.flatten(1);

flattened.all();

//=> [
//=>   { name: 'iPhone 6S', brand: 'Apple' },
//=>   { name: 'Galaxy S7', brand: 'Samsung' },
//=> ]

In this example, calling flatten without providing the depth would have also flattened the nested arrays, resulting in ['iPhone 6S', 'Apple', 'Galaxy S7', 'Samsung']. Providing a depth allows you to restrict the levels of nested arrays that will be flattened.

View source on GitHub