【发布时间】:2020-09-21 16:39:21
【问题描述】:
我有一个名为x 的对象。它看起来像这样:
{
a: 123,
b: null,
c: [1, 2, 3]
}
我想得到所有真实键的名称,所以我需要得到一个类似于["a", "c"] 的数组,因为x.a 和x.c 是真实的,但x.b 不是。我该怎么做?
【问题讨论】:
标签: javascript object key
我有一个名为x 的对象。它看起来像这样:
{
a: 123,
b: null,
c: [1, 2, 3]
}
我想得到所有真实键的名称,所以我需要得到一个类似于["a", "c"] 的数组,因为x.a 和x.c 是真实的,但x.b 不是。我该怎么做?
【问题讨论】:
标签: javascript object key
您可以使用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 将始终为假。
【讨论】: