一个多层次对象,需要返回两个数组 一个数组是keys的集合: 多层级的时候是 每个层级 以 . 的方式连接返回; 一个是values 的集合

58 阅读1分钟

const bigbox = { group1:{ name:'haha', age:85, subGroup:{ name:"nini", age:60, nextGroup:{ name:"yaya", age:35, lastGroup:{ name:"nana", age:4, } } } }, } 写一个js方法 返回 以下两个 数组集合;
['group1.name', 'group1.age', 'group1.subGroup.name', 'group1.subGroup.age', 'group1.subGroup.nextGroup.name', 'group1.subGroup.nextGroup.age', 'group1.subGroup.nextGroup.lastGroup.name', 'group1.subGroup.nextGroup.lastGroup.age'],['haha', 85, 'nini', 60, 'yaya', 35, 'nana', 4]

const orderObject = (obj: any,prefix='')=>{ let keys: any = []; let values: any = []; for(let key in obj){ const value = obj[key]; const fullKey = prefix?${prefix}.${key}:key; if(typeof obj[key]==='object' && value !== null){ const [resKeys,resValues] = orderObject(value,fullKey); keys = keys.concat(resKeys); values = values.concat(resValues) }else{ keys.push(fullKey); values.push(value) } } return [keys,values] }