[英]Getting name of parent object from value of object
这感觉很简单,但我找不到直截了当的答案。
我有一个对象:
var obj = {
'John': {'phone':'7326', 'age': '23'},
'Paul': {'phone': '9898', 'age': '12'},
'Lucy': {'phone': '1122', 'age': '24'}
}
我的电话号码是9898.如何获得“保罗”的结果?
只需使用Object.keys()和find()
var obj = { 'John': {'phone':'7326', 'age': '23'}, 'Paul': {'phone': '9898', 'age': '12'}, 'Lucy': {'phone': '1122', 'age': '24'} } const res = Object.keys(obj).find(e => obj[e].phone === '9898'); console.log(res);
您可以在Object.entries
上使用find
方法。
var obj = {'John': {'phone':'7326', 'age': '23'},'Paul': {'phone': '9898', 'age': '12'},'Lucy': {'phone': '1122', 'age': '24'}} var [name] = Object.entries(obj).find(([_, {phone}]) => phone == 9898) || [] console.log(name)
您可以尝试以下任何一种: -
for(var key in obj){
if(obj[key].phone == "9898") {
console.log(key);
}
}
要么
const key= Object.keys(obj).find(e => obj[e].phone === '9898');
console.log(key);
使用Object.keys和数组查找:
var obj = { 'John': {'phone':'7326', 'age': '23'}, 'Paul': {'phone': '9898', 'age': '12'}, 'Lucy': {'phone': '1122', 'age': '24'} }; var phone_to_search = '9898'; var result = Object.keys(obj).find(current=>{ if (obj[current]['phone']===phone_to_search) return current; }); console.log(result);
var obj = { 'John': {'phone':'7326', 'age': '23'}, 'Paul': {'phone': '9898', 'age': '12'}, 'Lucy': {'phone': '1122', 'age': '24'} } let givenPhone = '9898' let userName = 'UNKNOWN'; Object.entries(obj).forEach(([user, {phone}])=> { if(phone === givenPhone) userName = user; }) console.log(userName)
最好创建一个函数,这样你就可以重用代码了。 此代码通过对象并比较手机直到找到巧合。
var obj = {
'John': {'phone':'7326', 'age': '23'},
'Paul': {'phone': '9898', 'age': '12'},
'Lucy': {'phone': '1122', 'age': '24'}
}
function searchPhone(obj, phone){
for(var key in obj){
if(obj[key]['phone'] == phone){
return key
}
}
}
console.log(searchPhone(obj, '9898'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.