繁体   English   中英

从对象的值获取父对象的名称

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM