Skip to content

pluck

将对象数组映射为数组的数组

136 bytes
since v12.5.0

使用方法

传入一个对象数组并指定要提取的一个或多个键。该函数返回一个包含提取值的新数组(作为数组的数组)。输入数组永远不会被改变。

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 names = _.pluck(gods, ["name"]);
// => [['Ra'], ['Zeus'], ['Loki']]
// 提取多个属性
const powerDomains = _.pluck(gods, ["power", "domain"]);
// => [[100, 'Sun'], [98, 'Lightning'], [72, 'Tricks']]
// 提取所有属性
const allProps = _.pluck(gods);
// => [['Ra', 100, 'Sun'], ['Zeus', 98, 'Lightning'], ['Loki', 72, 'Tricks']]

映射函数

pluck 函数除了接受属性名外,还可以接受映射函数。

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]
// ]