我有一些JSON:
SELECT CustomerID, SUM(PurchasePrice) AS PurchaseTotal
FROM sales
GROUP BY CustomerID;
我可以成功搜索这个数组,并使用此函数获取“city”值:
[{
"cityid":101,
"city":"Alta"
},
{
"cityid":102,
"city":"Bluffdale"
},
{
"cityid":105,
"city":"Draper"
},
{
"cityid":107,
"city":"Holladay"
}]
我的问题:
当我尝试使用其他功能来获取城市时,而不是获取cityid,它不起作用。
我用来尝试获取城市ID的功能如下:
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 {
}
}
}
我正在调用函数:
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 {
}
}
}
答案 0 :(得分:4)
我刚刚打开控制台并尝试了两个功能,它们似乎都有效。由于您没有提供任何问题的输入/输出,我建议如下:
h1{ font-size:25px; line-height:1em; }
应该引用getLocality()
而cityid
应该引用getCityid()
。city
,因为此运算符执行类型强制,其中不同类型的事物被“强制”为相同类型以执行比较。您应该使用不会执行类型强制的==
运算符。如果被比较的两件事是不同的类型,它将简单地评估为假。答案 1 :(得分:0)
试试这个。
function getCityid(city) {
var storedlist = localStorage.getItem("citylist");
var clist = JSON.parse(storedlist);
for(var i = 0; i < clist.length; i++){
if(clist[i].city === city) {
return clist[i].cityid;
}
}
}