,可以使用递归的方式进行遍历和比较。
首先,定义一个函数,输入参数为待遍历的数组和当前遍历的层级。函数的主要逻辑如下:
以下是一个示例代码:
def get_common_properties(arr, level=1):
common_props = []
temp_props = []
for item in arr:
if isinstance(item, dict):
props = get_common_properties(list(item.values()), level + 1)
if props:
common_props.extend(props)
else:
temp_props.append(item)
if level > 1:
prev_props = get_common_properties(temp_props, level - 1)
for prop in set(temp_props):
if temp_props.count(prop) == level - 1 and prop in prev_props:
common_props.append(prop)
return common_props
该函数使用递归的方式遍历输入的数组。当遇到对象类型时,会递归调用函数,并传入当前对象的值作为数组参数,并将当前层级加一。在每一层级结束后,将临时数组中的元素与上一层级的结果进行比较,筛选出公共名称的属性,并存入空数组中。最终返回存储公共名称属性的数组。
这样,我们就可以使用以上函数来获取在笨拙的数组中不同级别上具有公共名称的所有属性。
请注意,以上代码是一个示例,实际使用时可能需要根据具体的数据结构和需求进行调整。在实际场景中,可以根据业务需求对函数进行扩展和优化。
领取专属 10元无门槛券
手把手带您无忧上云