在JavaScript中按值搜索对象
假设我们有一个这样的对象-
const obj = {
"name": "Vivek Sharma",
"occupation": "Software Engineer",
"age": 23,
"contacts": [{
"name": "Mukul Sharma",
"occupation": "Software Engineer",
"age": 31,
}, {
"name": "Jay Sharma",
"occupation": "Software Engineer",
"age": 27,
}, {
"name": "Rajan Sharma",
"occupation": "Software Engineer",
"age": 32,
}]
};在这里,它最多只能嵌套一层,但是嵌套也可以更深。我们需要编写一个对象函数Object.prototype.keysOf(),该函数接受一个值并返回具有参数中指定值的所有键的数组。
因此,现在让我们编写此函数的代码-
示例
const obj = {
"name": "Vivek Sharma",
"occupation": "Software Engineer",
"age": 23,
"contacts": [{
"name": "Mukul Sharma",
"occupation": "Software Engineer",
"age": 31,
}, {
"name": "Jay Sharma",
"occupation": "Software Engineer",
"age": 27,
}, {
"name": "Rajan Sharma",
"occupation": "Software Engineer",
"age": 32,
}]
};
const keysOf = function(val, obj = this, res = []){
const keys = Object.keys(obj);
for(let ind = 0; ind < keys.length; ind++){
if(obj[keys[ind]] === val){
res.push(keys[ind]);
}else if(typeof obj[keys[ind]] === 'object' &&
!Array.isArray(obj[keys[ind]])){
keysOf(val, obj[keys[ind]], res);
};
};
return res;
};
Object.prototype.keysOf = keysOf;
console.log(obj.keysOf(23));输出结果
控制台中的输出将为-
['age']
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短