我正在寻找类似 Object.keys
的东西,但它适用于潜在的嵌套对象。它也不应该包括具有对象/数组值的键(它应该只包括具有直接字符串/数字/布尔值的键)。
例一
输入
{
"check_id":12345,
"check_name":"Name of HTTP check",
"check_type":"HTTP"
}
预期产出
[
"check_id",
"check_name",
"check_type"
]
Object.keys
适用于这样的平面案例,但不适用于嵌套案例:
例子二
输入
{
"check_id":12345,
"check_name":"Name of HTTP check",
"check_type":"HTTP",
"tags":[
"example_tag"
],
"check_params":{
"basic_auth":false,
"params":[
"size"
],
"encryption": {
"enabled": true,
}
}
}
预期产出
[
"check_id",
"check_name",
"check_type",
"check_params.basic_auth",
"check_params.encryption.enabled"
]
Note that this does not include tags
, check_params
, check_params.params
, or check_params.encryption
since these values are arrays/objects.
问题
有做这个的图书馆吗?您将如何实现它以便它可以处理任何对象,无论是大对象还是嵌套对象?
原文由 user3773571 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以像这样使用 reduce :
Edit1: 对于您想要包含数组的一般情况。