我有一个动态嵌套数组,而且每次嵌套的层级都是动态的,我需要查询id并按顺序放入一个数组中。所以这取决于前面的功能,嵌套数据有时是两层,有时是三层,最多可以达到 10 层。 这里有两个例子。 例子一
let data = [
{
"field": "age",
"items": [
{
"field": "name",
"items": [
{
"field":"gender",
"items": [
{
"id": 12
}
]
},
{
"field":"gender",
"items": [
{
"id": 10
},
{
"id": 32
}
]
}
]
},
{
"field": "name",
"items": [
{
"field":"gender",
"items": [
{
"id": 29
}
]
}
]
}
]
},
{
"field": "age",
"items": [
{
"field": "name",
"items": [
{
"field":"gender",
"items": [
{
"id": 31
}
]
},
{
"field":"gender",
"items": [
{
"id": 15
},
{
"id": 39
}
]
}
]
},
{
"field": "name",
"items": [
{
"field":"gender",
"items": [
{
"id": 55
}
]
}
]
}
]
},
{
"field": "age",
"items": [
{
"field": "name",
"items": [
{
"field":"gender",
"items": [
{
"id": 43
}
]
},
]
},
{
"field": "name",
"items": [
{
"field":"gender",
"items": [
{
"id": 41
}
]
},
{
"field":"gender",
"items": [
{
"id": 6
},
{
"id": 98
}
]
}
]
}
]
}
]
result: [12,10,32,29,31,15,39,55,43,41,6,98]
例子二
[
{
"field": "age",
"items": [
{
"field": "name",
items: [
{
"field":"gender",
"items": [
{
"field": "height":
"items": [
{
"id": 12
}
]
}
]
},
{
"field":"gender",
"items": [
{
"field": "height":
"items": [
{
"id": 14
}
]
},
{
"field": "height":
"items": [
{
"id": 19
}
]
}
]
}
]
},
{
"field": "name",
items: [
{
"field":"gender",
"items": [
{
"field": "height":
"items": [
{
"id": 22
}
]
}
]
}
]
}
]
},
{
"field": "age",
"items": [
{
"field": "name",
items: [
{
"field":"gender",
"items": [
{
"field": "height":
"items": [
{
"id": 24
}
]
}
]
},
{
"field":"gender",
"items": [
{
"field": "height":
"items": [
{
"id": 25
}
]
},
{
"field": "height":
"items": [
{
"id": 27
},
{
"id": 29
},
{
"id": 21
}
]
},
{
"field": "height":
"items": [
{
"id": 88
}
]
}
]
}
]
},
]
}
]
result : [12,14,19,22,24,25,27,29,21,88]
如何只编写一个函数来展平整个数组,而不管数据如何随着嵌套的不同级别而变化。