對象中循環嵌套取連續的key值,輸出連續key值拼接的字符串,相似取url地址
var targetObj = { a: { b: { c: { d: { e: { name: "aaaaa" } } } }, d: '90', e: '90' }, a2: { name: 'bbbbb' }, a3: { k: { l: { name: 'ccccc' } } }, a4: { k: { l: { name: "北京", author: 'jin', version: '1.0.1' } } } } // console.log(targetObj.a4.k.l); // {name: "北京", author: "jin", version: "1.0.1"} // author: "jin" // name: "北京" // version: "1.0.1" // console.log(targetObj.a4.k.l.name); // 北京 // flat() 方法,這個方法能夠抹平一個數組。無論嵌套了多少的數組,都會展開成爲一個無嵌套數組 function search(object, value) { for (var key in object) { if (object[key] == value) return [key]; if (typeof (object[key]) == "object") { var temp = search(object[key], value); if (temp) return [key, temp].flat(); } } } var url = search(targetObj, "北京").join("/"); console.log(url); // a4/k/l/name