我需要以如下动态方式使用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 {}
答案 0 :(得分:6)
它不起作用,因为您只将一个项目传递给pick
(使用arr.toString()
相当于调用_.pick(obj, 'one, two')
)
Underscore.js支持直接将数组传递给pick
(demonstration):
var pick2 = _.pick(obj, arr); // { one: '1', two: '2' }
或者您可以尝试使用apply
方法:
var pick2 = _.pick.apply(null, [obj].concat(arr)); // { one: '1', two: '2' }