将JS对象转换为JS数组

时间:2017-12-07 11:09:52

标签: javascript

我有一个像{"1":true,"2":false,"3":true}

这样的javascript对象

我想通过获取值为true的键来创建像[1,3]这样的javascript数组。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

使用Object#keysarray#filter一起返回值为true的密钥。



var obj = {"1":true,"2":false,"3":true};
var result = Object.keys(obj).filter(k => obj[k]).map(Number);
console.log(result);




答案 1 :(得分:1)

您可以使用Object.keys(yourobject)并使用其顶部的过滤器从ES5开箱即用

var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']

Check it out here MDN article

答案 2 :(得分:1)

const o = {
    "1": true,
    "2": false,
    "3": true
};
const result = Object.entries(o).reduce((p, [k, v]) => v ? [...p, +k] : p, []);
console.log(result);

答案 3 :(得分:1)

请找到以下解决方案。首先,您需要过滤然后映射到Numbers。



var obj = {
  "1": true,
  "2": false,
  "3": true
}

var keys = Object.keys(obj).filter(key => obj[key]).map(key => Number(key))

console.log(keys);