js 一个对象进行取值,该对象存在一个key为a,a可能存在其第一层,也可能存在于其嵌套内容里,如何编写可以实现根据条件动态获取
时间: 2023-12-25 20:03:31 浏览: 70
可以使用递归函数来实现根据条件动态获取对象中的某个键值。以下是一个简单的示例代码:
```javascript
function getValue(obj, key) {
if (obj.hasOwnProperty(key)) {
return obj[key];
}
for (let k in obj) {
if (typeof obj[k] === 'object') {
const val = getValue(obj[k], key);
if (val !== undefined) {
return val;
}
}
}
return undefined;
}
```
该函数接受两个参数,第一个参数为要获取值的对象,第二个参数为要获取的键名。函数首先判断该对象是否存在该键名,如果存在则直接返回该键值,否则遍历该对象的所有键值,如果某个键值的类型为对象,则递归调用该函数获取该对象中是否存在该键名,直到找到为止。
使用示例:
```javascript
const obj = {
a: 1,
b: {
c: 2,
d: {
e: 3,
f: {
a: 4
}
}
}
};
console.log(getValue(obj, 'a')); // 1
console.log(getValue(obj, 'c')); // 2
console.log(getValue(obj, 'e')); // 3
console.log(getValue(obj, 'f')); // { a: 4 }
console.log(getValue(obj, 'g')); // undefined
```
阅读全文