|
|
- # 4.18.8
-
- ## Bug fixes
-
- ## Methods
- #### ``shift()``
- - Calling `shift()` on an empty collection returns null in all cases
-
- #### ``sortKeysDesc()``
- - Now works correctly when collections is an object
-
- #### ``min()``
- - Passing an array of object where not every element contains the given key no longer causes an error
-
- #### ``max()``
- - Passing an array of object where not every element contains the given key no longer causes an error
-
- # 4.16.0
-
- ## Breaking changes
-
- ## Methods
- #### ``sortBy()``
- - Null values, ``null`` and ``undefined`` will be sorted last, like normal ``.sort()``
-
- # 4.14.0
-
- ## Breaking changes
-
- ## Methods
- #### ``values()``
- - Reverted change in `4.13.0`. Values method are no longer recursive.
-
- # 4.14.0
-
- ## Breaking changes
-
- ## Methods
- #### ``where()``
- - This method now supports one, two or three arguments. This may cause unexpected output if you're using this function with one or two arguments earlier.
-
- # 4.13.0
-
- ## Breaking changes
-
- ## Methods
- #### ``values()``
- - Values now iterates the collection recursively and collects values. Results that previously would return an object may now return an array.
-
- # 4.12.0
-
- ## Breaking changes
-
- ## Collection
- #### ``collect()``
- - A collection instance made from an empty string is no longer recognized as an empty collection ``collect('')``
- ```js
- // Before 4.12.0
- collect('').isEmpty();
- //=> true
-
- // After 4.12.0
- collect('').isEmpty();
- //=> false
- ```
-
- # 4.4.0
-
- ## Breaking changes
-
- ## Methods
- #### ``concat()``
- - Concat now returns a new collection instead of modifying the existing one
-
- # 4.3.0
-
- ## Breaking changes
-
- ## Methods
- #### ``random()``
- - Previously ``random()`` and ``random(1)`` would return an array, while passing an integer >1 would return a collection object.
- - ``random(1)`` now returns a collection object
- - Changed ``random()`` according to https://github.com/ecrmnn/collect.js/issues/202
-
- # 4.2.0
- - Added ``whenEmpty()`` method
- - Added ``whenNotEmpty()`` method
- - Added ``unlessEmpty()`` method
- - Added ``unlessNotEmpty()`` method
-
- # 4.1.0
-
- ## Breaking changes
-
- ## Methods
- #### ``flatMap()``
- - Changed ``flatMap()`` according to https://github.com/ecrmnn/collect.js/issues/195
-
- # 4.0.1
- - Added build files so it's no longer required to use npm for installation
-
- # 4.0.0
-
- ## Breaking changes
- - ``chunk()``
- - ``count()``
- - ``dump()``
- - ``flatMap()``
- - ``has()``
- - ``keys()``
- - ``groupBy()``
- - ``partition()``
- - ``pluck()``
- - ``split()``
- - ``toArray()``
- - ``toJson()``
- - ``wrap()``
-
- ## Node.js
- Skipped Node 4 support
-
- ## Methods
- #### ``chunk()``
- - Returns a new collection of smaller collections of the given size.
- This is done because ``collect.js`` should give the same result as Laravel Collections.
- - Also works when the collection is based on an object, a string, a number or boolean.
-
- #### ``combine()``
- - Also works when the collection is based on a string
- - Also works when combining with a string or an object
- - Also works when combining with another collection
-
- #### ``count()``
- - Also works when the collection is based on an object
- - Return the number of keys in the object
-
- #### ``dump()``
- - Console logs the entire collection object (``this``) instead of only the items (``this.items``).
- ```js
- const collection = collect([
- { product: 'Desk', manufacturer: 'IKEA' },
- { product: 'Chair', manufacturer: 'Herman Miller' },
- { product: 'Bookcase', manufacturer: 'IKEA' },
- { product: 'Door' },
- ]);
-
- collection.pluck('product', 'manufacturer').dump();
-
- // Prior to 4.0.0
- //=> {
- //=> IKEA: 'Bookcase',
- //=> 'Herman Miller': 'Chair',
- //=> '': 'Door'
- //=> }
-
- // After 4.0.0
- //=> Collection {
- //=> items: {
- //=> IKEA: 'Bookcase',
- //=> 'Herman Miller': 'Chair',
- //=> '': 'Door'
- //=> }
- //=> }
- ```
-
- #### ``except()``
- - Accepts an array or infinite number of arguments.
-
- #### ``first()``
- - Also works when the collection is based on an object.
- ```js
- const collection = collect({
- name: 'Sadio Mané',
- club: 'Liverpool FC',
- });
-
- collection.first();
-
- //=> Sadio Mané
- ```
-
- #### ``flatMap()``
- - Version prior to 4.0.0 did not work as expected
- - Rewritten with new functionality
- - See readme for further details
-
- #### ``flip()``
- - Also works when the collection is based on an object
-
- #### ``forget()``
- - Also works when the collection is based on an object
-
- #### ``forPage()``
- - Also works when the collection is based on an object
-
- #### ``groupBy()``
- - Objects that don't have the key that we're grouping by will be grouped into a group under the
- name of an empty string. This is changed from being grouped under ``undefined``.
- - Now returns a collection of collections instead of an array of objects.
- This is done because ``collect.js`` should give the same result as Laravel Collections.
- ```js
-
- ```
- #### ``has()``
- - Accepts an array of keys to check
- - Is now a variadic function and therefore accepts infinite number of arguments (keys) to check
- - No longer checks if any object in the given array has the specified key.
- This is done because ``collect.js`` should give the same result as Laravel Collections.
- ```js
- // Previously this would return true. It now returns false.
-
- const collection = collect([{
- animal: 'unicorn',
- ability: 'magical'
- }, {
- animal: 'pig',
- ability: 'filthy'
- }]);
-
- collection.has('ability');
-
- //=> true (Prior to 4.0.0)
- //=> false (After 4.0.0)
- ```
-
- #### ``keyBy()``
- - Uses an empty string as the key instead of ``undefined`` when passed an invalid key
-
- #### ``keys()``
- - Returns indexes as keys when based on an array. Indexes are mapped to ``Number``.
- ```js
- const collection = collect([{
- name: 'Sadio Mané',
- }, {
- name: 'Roberto Firmino',
- }]);
- const keys = collection.keys();
-
- // Prior to 4.0.0
- //=> ['name', 'name']
-
- // After 4.0.0
- //=> [0, 1]
- ```
-
- #### ``last()``
- - Also works when the collection is based on an object.
- ```js
- const collection = collect({
- name: 'Sadio Mané',
- club: 'Liverpool FC',
- });
-
- collection.last();
-
- //=> Liverpool FC
- ```
-
- #### ``merge()``
- - Can merge arrays and objects.
- - Also works when merging with a string.
-
- #### ``only()``
- - Accepts an array or infinite number of arguments.
-
- #### ``partition()``
- - Returns a collection of collections with the results instead of an array
-
- #### ``pluck()``
- - Returns ``null`` as the value instead of ``undefined``
- - Returns ``null`` when an item does not contain the specified key.
- ```js
- const collection = collect([
- { product: 'Desk', manufacturer: 'IKEA' },
- { product: 'Chair', manufacturer: 'Herman Miller' },
- { product: 'Bookcase', manufacturer: 'IKEA' },
- { product: 'Door' },
- ]);
-
- const pluck = collection.pluck('non-existing-key');
-
- pluck.all();
-
- //=> [null, null, null, null]
-
- const manufacturers = collection.pluck('manufacturer');
-
- manufacturers.all();
-
- //=> ['IKEA', 'Herman Miller', 'IKEA', null]
- ```
- - Objects that don't have the key that we're plucking by will get an empty string as its key.
- This is changed from being ``undefined``.
- ```js
- const collection = collect([
- { product: 'Desk', manufacturer: 'IKEA' },
- { product: 'Chair', manufacturer: 'Herman Miller' },
- { product: 'Bookcase', manufacturer: 'IKEA' },
- { product: 'Door' },
- ]);
-
- const pluck = collection.pluck('product', 'manufacturer');
-
- pluck.all();
-
- //=> {
- //=> IKEA: 'Bookcase',
- //=> 'Herman Miller': 'Chair',
- //=> '': 'Door',
- //=> }
- ```
-
- #### ``pop()``
- - Also works when collection is based on an object
-
- #### ``push()``
- - Accepts spread/rest operator ``collection.push(...values)``
-
- #### ``random()``
- - Also works when collection is based on an object
-
- #### ``shift()``
- - Also works when collection is based on an object
-
- #### ``shuffle()``
- - Also works when collection is based on an object
-
- #### ``split()``
- - Splits the collection into the given number of collections
- ```js
- const collection = collect([1, 2, 3, 4, 5]);
-
- collection.split(2).dump();
-
- // Prior to 4.0.0
- //=> [
- //=> [1, 2, 3],
- //=> [4, 5],
- //=> ]
-
- // After 4.0.0
- //=> Collection {
- //=> items: {
- //=> Collection {
- //=> items: [1, 2, 3]
- //=> },
- //=> Collection {
- //=> items: [4, 5]
- //=> },
- //=> }
- //=> }
- ```
-
- #### ``take()``
- - Also works when collection is based on an object
-
- #### ``toArray()``
- - Now works recursively like Laravel collections ``toArray()`` method
- - More information: https://github.com/ecrmnn/collect.js/issues/138
-
- #### ``toJson()``
- - Now works recursively like Laravel collections ``toArray()`` method
- - More information: https://github.com/ecrmnn/collect.js/issues/138
-
- #### ``wrap()``
- - Now wraps objects correctly. The key/values are places directly on the collection. Previously objects were wrapped in
- an array.
-
- ## Misc
- - Added ``CHANGELOG.md``
|