这听起来真的很简单,但是我找不到简单的答案。
我有一个对象:
var obj = {
'John': {'phone':'7326', 'age': '23'},
'Paul': {'phone': '9898', 'age': '12'},
'Lucy': {'phone': '1122', 'age': '24'}
}
我的电话号码是9898。结果如何获得“ Paul”?
答案 0 :(得分:4)
只需使用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);
答案 1 :(得分:3)
您可以在find
上使用Object.entries
方法。
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)
答案 2 :(得分:2)
您可以尝试以下任一方法:-
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);
答案 3 :(得分:1)
使用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);
答案 4 :(得分:0)
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)
答案 5 :(得分:0)
最好创建一个函数,这样您就可以重用代码。 这段代码通过对象,并比较手机,直到发现巧合为止。
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'))