A glance at the Lo-Dash docs shows that the API falls in to categories of:
A more detailed look in to the Arrays API shows approximately 30 different methods available that are applicable to arrays.
The Collections API has a few more methods than the Arrays API, and they do not share the same methods.
Within the Collections API, a collection is described as an object that is iterated, and may be an array:
collection (Array|Object|string): The collection to iterate over.
Also, interestingly, there's a Collections API method _.toArray
that returns an array from a collection:
Arguments
collection (Array|Object|string): The collection to convert. Returns
(Array): Returns the new converted array.
Would anyone happen to know a formal difference between an array and collection in the Lo-Dash API? I was under the presumption it was a difference due to Backbone.js, however, am now questioning my reasoning to that end, since the methods may be available elsewhere. Thanks in advance.
It's a good idea to look at the more elaborate Underscore.js documentation, from which this distinction is derived. It states:
Collection functions work on arrays, objects, and array-like objects such as
arguments
, NodeList and similar. But it works by duck-typing, so avoid passing objects with a numericlength
property.
Basically, "collections" are things that implement some kind of "iterable" interface, and they internally use the same iteration method (though Lodash source is a bit more convoluted than Underscore). All the "collection methods" do work both on arrays and objects (and a few more iterable things), while the array methods should only be used on arrays (or maybe everything with .length
and numeric indices), and the object methods work on any objects.