pluck
Map an array of objects to an array of arrays
136 bytes
since v12.5.0
Usage
Pass in an array of objects and specify one or more keys to extract. The function returns a new array containing the extracted values (as an array of arrays). The input array is never mutated.
import * as _ from 'radashi'
const gods = [ { name: 'Ra', power: 100, domain: 'Sun' }, { name: 'Zeus', power: 98, domain: 'Lightning' }, { name: 'Loki', power: 72, domain: 'Tricks' },]
// Extract single propertyconst names = _.pluck(gods, ['name'])// => [['Ra'], ['Zeus'], ['Loki']]
// Extract multiple propertiesconst powerDomains = _.pluck(gods, ['power', 'domain'])// => [[100, 'Sun'], [98, 'Lightning'], [72, 'Tricks']]
// Extract all propertiesconst allProps = _.pluck(gods)// => [['Ra', 100, 'Sun'], ['Zeus', 98, 'Lightning'], ['Loki', 72, 'Tricks']]
Mapping Function
The pluck
function can also accept mapping functions in addition to property names.
import * as _ from 'radashi'
const gods = [ { name: 'Ra', power: 100, domain: 'Sun' }, { name: 'Zeus', power: 98, domain: 'Lightning' }, { name: 'Loki', power: 72, domain: 'Tricks' },]
const mapped = _.pluck(gods, [ god => `${god.name} is a god of ${god.domain}`, god => god.power,])// => [// ['Ra is a god of Sun', 100],// ['Zeus is a god of Lightning', 98],// ['Loki is a god of Tricks', 72]// ]