为了账号安全,请及时绑定邮箱和手机立即绑定

JSON 文件中的搜索和返回算法

JSON 文件中的搜索和返回算法

三国纷争 2021-11-12 10:41:27
我有一个非常具体的 JSON 文件,这种格式处理起来很烦人,但别无选择。这真的让我无法完成这么简单的任务:    const data =         {            "country":            {                "France" :                 {                    "owners" : ["peter", "john"],                    "members" : [ "james", "paul"]                },                "Germany" :                {                    "owners" : ["Tom", "Omar"],                    "members" : ["Zak", "Eddie", "Ronald"]                },                "Spain" :                 {                    "owners" : ["Juan"],                    "members" : ["Clement", "Max"]                }            }       }我想要的只是一个让我了解特定用户所在国家/地区的功能(不管他是成员还是所有者)。例如 :GetUserCountry(data, 'Ronald'); // Should return 'Germany'我知道这真的很简单,但文件的格式不允许我做我的事情。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

一种方法是使用Object.entries()和Array.find()。


const data = {

  "country": {

    "France": {

      "owners": ["peter", "john"],

      "members": ["james", "paul"]

    },

    "Germany": {

      "owners": ["Tom", "Omar"],

      "members": ["Zak", "Eddie", "Ronald"]

    },

    "Spain": {

      "owners": ["Juan"],

      "members": ["Clement", "Max"]

    }

  }

};


function getUserCountry(data, name) {

  return Object.entries(data.country).find(([key, value]) =>

    (value.owners.includes(name) || value.members.includes(name)))[0];

}


console.log(getUserCountry(data, 'Ronald'));

console.log(getUserCountry(data, 'john'));

console.log(getUserCountry(data, 'Max'));


查看完整回答
反对 回复 2021-11-12
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信