从布尔字典中提取 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));
我正在使用 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));