当值为True时,按对象键入数组

时间:2017-03-21 09:09:15

标签: javascript

我的对象看起来像这样

{
 Key1: true,
 Key2: false,
 Key3: false,
 Key4: true
}

如何在数组中保存这样的键:

["Key1", "Key4"]

4 个答案:

答案 0 :(得分:3)

您可以过滤密钥。



var object = { Key1: true, Key2: false, Key3: false, Key4: true },
    trueKeys = Object.keys(object).filter(k => object[k]);

console.log(trueKeys);




答案 1 :(得分:1)

您可以使用Object.keys()获取密钥,然后使用filter()



var obj = {
  Key1: true,
  Key2: false,
  Key3: false,
  Key4: true
}

var keys = Object.keys(obj).filter(e => obj[e] === true);
console.log(keys)




答案 2 :(得分:1)

使用filter功能。

var myObject = {
 Key1: true,
 Key2: false,
 Key3: false,
 Key4: true
}

var myFilteredArray = myObject.keys().filter(function(key) { return myObject[key] }

console.log(myFilteredArray); // ["Key1", "Key4"]

<强>的解释

  • myObject.keys()以数组的形式返回对象的键。
  • Array过滤器函数接收为每个元素执行的函数,如果该函数返回true,则选择该元素。生成的数组仅由已“选中”的项目组成

答案 3 :(得分:1)

&#13;
&#13;
var keys = {
 Key1: true,
 Key2: false,
 Key3: false,
 Key4: true
}

var filteredKeys = [];

for(var key in keys) {
  if(keys[key] == true) {
    filteredKeys.push(key);
  }
}
console.log(filteredKeys);
&#13;
&#13;
&#13;