如何动态使用pick() - 方法形成UnderscoreJS

时间:2014-01-10 16:58:42

标签: javascript underscore.js

我需要以如下动态方式使用UnderscoreJS中的pick方法 - 请告诉我它为什么不起作用!

var obj = {
    one: '1',
    two: '2',
    three: '3'
};
var arr = ['one', 'two'];

var pick1 = _.pick(obj, 'one', 'two');
var pick2 = _.pick(obj, arr.toString());
console.log(pick1, pick2);

返回以下内容:

Object {one: "1", two: "2"} Object {}

1 个答案:

答案 0 :(得分:6)

它不起作用,因为您只将一个项目传递给pick(使用arr.toString()相当于调用_.pick(obj, 'one, two')

Underscore.js支持直接将数组传递给pickdemonstration):

var pick2 = _.pick(obj, arr); // { one: '1', two: '2' }

或者您可以尝试使用apply方法:

var pick2 = _.pick.apply(null, [obj].concat(arr)); // { one: '1', two: '2' }