對象中循環嵌套取連續的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