JavaScript 捕获一对值作为键及其值的数据结构

JavaScript data structure to capture a pair of values as key and its value

我有级联过滤器下拉菜单、国家下拉菜单和州下拉菜单。 做出选择后,我需要将用户重定向到相应的页面。 例如。

    {
      USA + Texas : Texas URL,
      Germany + Berlin: Berlin URL
    } 

我可以做到,但这没有任何意义。我需要选择的值对作为键。

{
 Texas URL: ["USA", "Texas"],
 Berlin URL: ["German", "Berlin"]
}

我需要创建一种类似于对象映射或哈希的数据结构 table 来捕获此数据。

有人可以就如何最好地创建此数据结构给我建议吗? 到目前为止,这是我的代码:

https://jsbin.com/tarapijumi/3/edit?html,js,output

如果你想让它在代码中变得用户友好和清晰,我认为最好的方法是有 2 个字典。每个国家的城市之一,每个城市的URL:

countries = {
    "USA": ["California", "Texas"],
    "Germany": ["Berlin", "Leipzig"]
};

urls = {
    "Texas": "Texas URL",
    "California": "California URL",
    "Berlin": "Berlin URL",
    "Leipzig": "Leipzig URL"
};

然后,对于用户友好的部分,您可以执行以下操作:当一个国家被 select 编辑时,下一个 select 将只有这个国家的城市的选项。

因此,如果美国 selected,他们在下一个 select 中只会看到德克萨斯州和加利福尼亚州。

希望对你有所帮助:-)

您可以使用嵌套对象并将州和城市作为访问器

target = {
    USA: {
        California: 'http://example.com/usa/california',
        Texas: 'http://example.com/germany/texas'
    },
    Germany: {
        Frankfurt: 'http://example.com/germany/frankfurt',
        Berlin: 'http://example.com/germany/berlin'
    }
}

用数组访问,如

href = [country, state].reduce((r, k) => (r || {})[k], target)