我有一个非常具体的 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 回答
![?](http://img1.sycdn.imooc.com/54584e1f0001bec502200220-100-100.jpg)
冉冉说
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'));
添加回答
举报
0/150
提交
取消