在一个复杂的数组对象数据中(嵌套多层),通过key值返回对应的对象,在网上搜到的,感觉挺好用的,也没有多深入研究,直接拿来用了(捂脸)
1、代码
function parseJson(jsonObj, key, value) {
// 循环所有键
let array = []
for (let v in jsonObj) {
let element = jsonObj[v]
// 1.判断是对象或者数组
if (typeof (element) == 'object') {
let result = parseJson(element, key, value)
if(result) return result
} else {
if (v == key) {
if (element == value) return jsonObj
}
}
}
}
2、方法使用
举个例子:
let arr = [
{
key: 1,
value: 'a',
children: null
},
{
key: 2,
value: 'b',
children: null
},
{
key: 3,
value: 'c',
children: [
{
key: 4,
value: 'c-1',
children: null
},
{
key: 5,
value: 'c-2',
children: null
},
{
key: 6,
value: 'c-1',
children: [
{
key: 7,
value: 'c-1-1',
children: null
},
{
key: 8,
value: 'c-1-2',
children: null
},
]
}
]
}
]
直接调用传相对应的参数即可:
parseJson(arr,‘key’,6);