_.flatten()
. Often, we end up having to apply several of these functions in succession in order to end up with the desired result. This becomes a much simpler programming task when using the _.chain()
function to setup a chainable object first. The end result is a less awkward approach to successive function calls on the same object.For example, consider the following data structure and the code used to extract the unique
action
strings from each object in the array.var data = [
{
name: "Item 1",
actions: [ "Create", "Read", "Delete" ]
},
{
name: "Item 2",
actions: [ "Create", "Update", "Delete" ]
},
{
name: "Item 3",
actions: [ "Delete" ]
}
];
var actions = _.chain( data )
.flatten( "actions" )
.uniq();
Here, the resulting
actions
array is actually a chainable object — it has the array inside. The chainable object is actually setup by calling _.chain( data )
. Then we flatten the actions property into a single array, then we remove duplicates. From this point on, we could start the chaining process all over again on the actions
object. A nice side-effect is not having your code littered with underscores.
No comments :
Post a Comment