我有一个对象数组:
{Option1: true, Option2: true, Option3: true}我希望筛选这个数组,以便只保留真正的元素。但我需要钥匙而不是价值。我该怎么做?
我搜索了一个underscore.js函数,但它们只对值执行此操作,而不是针对键。
发布于 2014-02-07 16:07:37
var keys = [{"key1":"false"}, {"key2":"true"}]
.filter(function (o, i) { return o['key' + (i + 1)] === 'true'; })
.map(function (o) { for (var k in o) return k; });
console.log(keys); //["key2"]编辑:
你改变了问题..。{Option1: true, Option2: true, Option3: true}不是一个对象数组,它只是一个对象。以下是你可以做的:
var o = {Option1: true, Option2: true, Option3: true};
var keys = Object.keys(o).filter(function (k) {
return o[k];
});发布于 2014-02-07 16:07:04
首先,这不是一个对象数组。
这是一个对象数组:
ax =
[ {Option1: true, Option2: true, Option3: true},
{Option1: true, Option2: true, Option3: true},
{Option1: true, Option2: true, Option3: true} ]来过滤它并进行迭代和测试。如果它通过了您的标准,则将其复制到结果集中:
result = [];
for (i = 0; i < ax.length; i++)
{
if (ax[i].Option2) // may be as complex as you need it to be
{
// passed test
result.push(ax[i]);
}
}现在,result包含您想要的项目。
https://stackoverflow.com/questions/21632301
复制相似问题