在嵌套对象JavaScript中检索相同键的值(从用户输入)
在JavaScript中,可以使用递归和循环来检索嵌套对象中相同键的值。以下是一个示例代码:
function findValueByKey(obj, key) {
// 检查当前对象是否包含指定的键
if (obj.hasOwnProperty(key)) {
return obj[key];
}
// 遍历对象的所有属性
for (var prop in obj) {
// 检查属性的值是否为对象
if (typeof obj[prop] === 'object') {
// 递归调用函数,在子对象中查找相同键的值
var result = findValueByKey(obj[prop], key);
if (result !== undefined) {
return result;
}
}
}
// 如果未找到相同键的值,则返回undefined
return undefined;
}
// 示例对象
var user = {
name: 'John',
age: 30,
address: {
street: '123 Main St',
city: 'New York',
country: 'USA'
}
};
// 从用户输入中获取键
var userInput = prompt('请输入要检索的键:');
// 调用函数查找相同键的值
var value = findValueByKey(user, userInput);
// 输出结果
if (value !== undefined) {
console.log('找到的值为:', value);
} else {
console.log('未找到相同键的值。');
}
这段代码中,findValueByKey
函数接受一个嵌套对象和一个键作为参数。它首先检查当前对象是否包含指定的键,如果包含则返回对应的值。如果不包含,则遍历对象的所有属性,检查属性的值是否为对象。如果是对象,则递归调用findValueByKey
函数,在子对象中查找相同键的值。如果找到了相同键的值,则返回该值;如果未找到,则返回undefined
。
这个函数可以用于检索嵌套对象中任意层级的相同键的值。在上述示例中,我们使用prompt
函数从用户输入中获取要检索的键,并将结果输出到控制台。你可以根据实际需求修改代码,将结果展示在页面上或进行其他操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云