在实际工程项目中,有一个递归取值的问题,如果key可以找到,并且对象存在,那么返回该值,否则直接退出。
代码如下:
<body>
<div id="find">ff</div>
<script type="text/javascript">
var find = function (obj, keyStrings) {
var keys = keyStrings.split(".");
if (keys.length === 1) {
if (obj[keys[0]]) {
return obj[keys[0]];
} else {
return;
}
}
console.log(keyStrings.substring(keyStrings.indexOf(".") + 1, keyStrings.length - 1));
var curKey = keys[0];
for (var k in obj) {
if (k == curKey) {
return find(obj[curKey], keyStrings.substring(keyStrings.indexOf(".") + 1));
}
}
};
var dd = {
a: {
b: {
c: "yuznehn"
}
},
d: {
e: {
f: "ff"
}
}
};
var test = find(dd, "a.b.c");
window.onload = function (){
document.getElementById('find').innerHTML = test;
}
</script>
</body>