javascript - JSON文件中的搜索和返回算法
问题描述
我有一个非常具体的 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'
我知道这很简单,但文件的格式不会让我做我的事。
解决方案
一种方法是使用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'));
推荐阅读
- django - 使用 drf-nested-routers 找不到页面错误
- android - Android X onMenuItemSelected
- javascript - 尝试动态更改导航栏中的“活动”类 - Node.js/Express/Handlebars
- java - 在 Java 中使用 WEKA
- javascript - 路由导航方法未重定向到目标组件
- node.js - expressjs 是否能够同时为多个用户提供文件?
- angular - angular4 Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays
- javascript - 在不提供输入的情况下调用迭代器函数会产生奇怪的行为?
- c# - 在 Post 请求中发送 DateTime
- excel - 如何拥有 2 个非常相似的 Excel 插件,一个用于生产,一个用于开发?