我有一个名为x
的对象。看起来类似于:
{
a: 123,
b: null,
c: [1, 2, 3]
}
我想获取所有真实的键的名称,所以我需要获取一个看起来像["a", "c"]
的数组,因为x.a
和x.c
是真实的,但是x.b
不是。我该怎么办?
答案 0 :(得分:1)
您可以使用Object.keys
和Array.prototype.filter
来做到这一点。
var x = {
a: 123,
b: null,
c: [1, 2, 3]
}
var y = Object.keys(x).filter(item => !!x[item])
console.log(y)
!!
运算符,引用this answer:
将
Object
转换为boolean
。如果它是假的(例如0
,null
,undefined
等),则为false
,否则为true
。
因此,假设truthyValue
是真实的,而falsyValue
是虚假的,!!truthyValue
将始终为true
,而!!falseyValue
将始终为假。