我有一些 JSON:
[{
"cityid":101,
"city":"Alta"
},
{
"cityid":102,
"city":"Bluffdale"
},
{
"cityid":105,
"city":"Draper"
},
{
"cityid":107,
"city":"Holladay"
}]
我可以使用此函数成功搜索该数组,并获取“city”值:
function getLocality(cid){
var storedlist = localStorage.getItem("citylist");
var clist = JSON.parse(storedlist);
for(var i = 0; i < clist.length; i++)
{
if(clist[i].cityid == cid) {
return clist[i].city;
} else {
}
}
}
我的问题:
当我尝试使用另一个函数来获取城市,而不是获取 cityid 时,它不起作用。
我用来尝试获取城市ID的函数如下:
function getCityid(cid){
var storedlist = localStorage.getItem("citylist");
var clist = JSON.parse(storedlist);
for(var i = 0; i < clist.length; i++)
{
if(clist[i].city == cid) {
return clist[i].cityid;
} else {
}
}
}
我这样调用该函数:
getCityid('Draper');
最佳答案
我刚刚打开控制台并尝试了您的两个功能,它们似乎都有效。由于您没有提供问题的任何示例输入/输出,我将推荐以下内容:
- 验证您是否向每个函数传递了正确的参数。
getLocality()
应采用cityid
,而getCityid()
应采用city
。 - 避免在 JavaScript 中使用
==
,因为此运算符执行类型强制,其中不同类型的事物被“强制”为相同类型以便执行比较。您应该使用===
运算符,它不会执行类型强制。如果被比较的两个事物是不同的类型,它将简单地评估为 false。
关于javascript - 可以通过键获取 JSON 中的一些值,其他的我无法获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778144/