Javascript 如何根据下划线中的值获取键

Javascript 如何根据下划线中的值获取键,javascript,underscore.js,Javascript,Underscore.js,我有这个东西 {'a':'test1','b':'test2','c':'test3'} 那我有 [{name:'test1',selected:true},{name:'test3',selected:true}] 现在,我想得到在第二个对象中选择为true的关键点的最终列表 ['a', 'c'] 我怎样才能在下划线中这样做 我试过这个 var inv_obj = _.invert(obj); return _

我有这个东西

{'a':'test1','b':'test2','c':'test3'}

那我有

[{name:'test1',selected:true},{name:'test3',selected:true}]

现在,我想得到在第二个对象中选择为true的关键点的最终列表

['a', 'c']
我怎样才能在下划线中这样做

我试过这个

var inv_obj = _.invert(obj);

                            return _

                                .filter(objectList, function (obj) {
                                    return obj.selected
                                })
                                .map(function (obj, inv_obj) {
                                    return inv_obj[obj] ?:''
                                })
尝试:


给我们看一些代码,你尝试了什么?您的代码中有什么不起作用?@rsz我添加了代码
inv_obj[obj]?:''
这似乎是一个语法错误
var obj = {'a': 'test1', 'b': 'test2', 'c': 'test3'};
var col = [{name: 'test1', selected: true}, {name: 'test2', selected: false}, {name: 'test3', selected: true}];

var inv_obj = _.invert(obj);

var final = _.filter(col, function(obj) {
    return obj.selected;
}).map(function (obj) {
    return inv_obj[obj.name];
});

console.log(final);
var a={'a': 'test1', 'b': 'test2', 'c': 'test3'};
var b=[{name: 'test1', selected: true}, {name: 'test3', selected: true}];

var c=_.pluck(_.where(b, {selected: true}), 'name');
// ['test1', 'test3']

var d=_.invert(a);
console.log(_.values(_.pick(d, c)));