Javascript 如何动态使用pick()方法形成下划线

Javascript 如何动态使用pick()方法形成下划线,javascript,underscore.js,Javascript,Underscore.js,我需要以如下所示的动态方式从下划线中使用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

我需要以如下所示的动态方式从下划线中使用
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 {}

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

Underline.js支持将数组直接传递给():

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

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

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

Underline.js支持将数组直接传递给():

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

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

顺便说一下:u.pick(object,*keys)返回对象的一个副本,经过筛选,只包含白名单上的键(或有效键数组)的值<代码>>选择({name:'moe',年龄:50,用户ID:'moe1'},'name','age');=>{name:'moe',age:50}顺便说一句:u.pick(object,*keys)返回对象的一个副本,经过筛选,只包含白名单键(或有效键数组)的值<代码>>选择({name:'moe',年龄:50,用户ID:'moe1'},'name','age');=>{name:'moe',age:50}只需注意-据我所知,这不是必需的,但我一般认为在这些情况下使用
作为
应用
上下文,而不是
null
.pick.apply(…)
只需注意-据我所知,这不是必需的,但我通常认为在这些情况下,使用
作为
apply
上下文,而不是
null
.pick.apply(…)