Lodash使用pluck获取嵌套对象属性

时间:2015-10-22 11:21:47

标签: javascript lodash

我有一个像这样的对象数组:

var characters = [
    { 'name': 'barney',  'age': 36, 'salary':{'amount': 10} },
    { 'name': 'fred',    'age': 40, 'salary':{'amount': 20} },
    { 'name': 'pebbles', 'age': 1,  'salary':{'amount': 30} }
];

我想把薪水金额变成一个数组。我设法通过链接两个pluck函数来实现,如下所示:

var salaries = _(characters)
  .pluck('salary')
  .pluck('amount')
  .value();

console.log(salaries); //[10, 20, 30]

有没有办法只使用一个pluck来做到这一点?在lodash中有其他功能有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以将路径用作字符串,例如

console.log(_(characters).pluck('salary.amount').value())
// [ 10, 20, 30 ]

或直接使用

console.log(_.pluck(characters, 'salary.amount'));
// [ 10, 20, 30 ]