48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
|
# `flatten()`
|
||
|
|
||
|
The flatten method flattens a multi-dimensional collection into a single dimension:
|
||
|
|
||
|
```js
|
||
|
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:
|
||
|
|
||
|
```js
|
||
|
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](https://github.com/ecrmnn/collect.js/blob/master/src/methods/flatten.js)
|