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

Nik*_*ola 7 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} }
];
Run Code Online (Sandbox Code Playgroud)

我想将工资金额放入一个数组中。我设法通过链接两个pluck函数来做到这一点,如下所示:

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

console.log(salaries); //[10, 20, 30]
Run Code Online (Sandbox Code Playgroud)

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

the*_*eye 5

你可以只给出要用作字符串的路径,就像这样

console.log(_(characters).pluck('salary.amount').value())
// [ 10, 20, 30 ]
Run Code Online (Sandbox Code Playgroud)

或者直接使用

console.log(_.pluck(characters, 'salary.amount'));
// [ 10, 20, 30 ]
Run Code Online (Sandbox Code Playgroud)