我有一个像{"1":true,"2":false,"3":true}
我想通过获取值为true的键来创建像[1,3]
这样的javascript数组。
我该怎么做?
答案 0 :(得分:2)
使用Object#keys
与array#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']
答案 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);