_.pluck在找不到对象时给出一个未定义值的数组

use*_*100 4 javascript lodash

我正在使用lodash中的_.pluck()来获取数组中键的值.

var employees = [
  {
    Name : "abc"  
  },
  {
    Name : "xyz"
  }
]

var res = _.pluck(employees, 'Name'); 
Run Code Online (Sandbox Code Playgroud)

变量res将包含['abc,'xyz']

当我搜索其他一些场地时

var res = _.pluck(employees, 'SomeRandomField');   
Run Code Online (Sandbox Code Playgroud)

结果 - [未定义,未定义]

如何将上述结果作为undefined的null而不是未定义值的数组

Plnkr:http://plnkr.co/edit/qtmm6xgdReCuJP5fm1P2?p = preview

kry*_*nio 6

你可以使用filterpluck:

var res = _.filter(_.pluck(employees, 'Name'), function(item) {
    return item;
});
Run Code Online (Sandbox Code Playgroud)

  • 默认的`_.filter`谓词只是`_.identity`,因此在这种情况下你不需要谓词.如果你想丢弃空字符串(被视为假的),那么`_.compact`可能更加惯用. (2认同)