从布尔字典中提取 object.keys

Extract object.keys from boolean dictionary

我正在使用 js & underscore.js,如何转换以下布尔字典:

{first: true, second: false, third: true}

到以下键数组:

['first', 'third']

在下划线中有函数 _.pick, you can filter data with it and then use .keys 以便 return 带有对象键的数组

var data = {
  first: true, 
  second: false, 
  third: true
};

var result = _.chain(data)
  .pick(function (value) {
    return value;
    // or 
    // return value === true;
    // if you need check exact value
  })
  .keys()
  .value();

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>

Object.keys() 应该适合你。 ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys )

var myObject = {first: true, second: false, third: true};
var myKeys = Object.keys(myObject);    //['first', 'second','third']

请注意,这在旧版浏览器(如 IE8)中未实现。上面的 mdn 站点有一个 ya

的 polyfill

类似于已接受的答案,但使用 _.identity 作为 _.pick 的谓词来挑选真实的键:

var result = _.keys(_.pick(data, _.identity));