【发布时间】:2022-02-04 22:04:08
【问题描述】:
JSON 中的每个条目如下所示:
{
"ALBA": [
{
"name": "ABRUD",
"zip": "515100",
"lat": "46.274675",
"long": "23.065029"
},
{
"name": "ABRUD-SAT",
"zip": "515101",
"lat": "46.283967",
"long": "23.061093"
},
}
第一个对象是县名,我还有很多,但我只是举个例子,嵌套对象是城市。我想要的是一种在 HTML 的选择标签中显示它们的方法,但我无法做到。
到目前为止,我有以下代码:
const getCities = () => {
// Object.keys(regions).map(function(key, index) {
// console.log(regions[key]);
// })
for (const region in regions) {
console.log(region); //this returns exactly what i want
//cities.push(region)
}
}
getCities();
在 html 中:
<div>
<select name="city">
<option value={cities}>{cities}</option>
</select>
</div>
如何让这个选择标签准确地返回我的县,以及如何让另一个标签根据所选县向我显示城市名称?
编辑: 我设法做到了以下几点:
const getCities = () => {
for (const region in regions) {
cities.push(region);
}
return cities
}
getCities();
<div>
<label htmlFor="city">County</label>
<select name="city"
onChange={(e) => setCity(e.target.value)}
>
{cities.map((city) => {
return (
<option value={city} key={city}>{city}</option>
)
})}
</select>
</div>
【问题讨论】:
-
您的问题中没有JSON(仅在那一毫秒内,您将
JSON.stringify()的返回值传递给JSON.parse()在getCities()第一行的无操作中)跨度> -
JSON.parse(JSON.stringify(regions))有什么意义,这会将region转换为字符串 (JSON),然后立即再次解析。结果没有分配到任何地方,所以这条线根本没有意义,它只是在浪费 CPU 周期。 -
"console.log(region); //这完全返回了我想要的结果" - 为什么?那是一个区域 (
ALBA) o.O 函数名为getCities()。<select>的名称是city... -
你说得对,我删除了第一行。
-
区域变量是什么?整个代码会很有帮助。
标签: javascript html reactjs json