javascript - 可以通过键获取 JSON 中的一些值,其他的我无法获取

标签 javascript jquery json

我有一些 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');

最佳答案

我刚刚打开控制台并尝试了您的两个功能,它们似乎都有效。由于您没有提供问题的任何示例输入/输出,我将推荐以下内容:

  1. 验证您是否向每个函数传递了正确的参数。 getLocality() 应采用 cityid,而 getCityid() 应采用 city
  2. 避免在 JavaScript 中使用 ==,因为此运算符执行类型强制,其中不同类型的事物被“强制”为相同类型以便执行比较。您应该使用 === 运算符,它不会执行类型强制。如果被比较的两个事物是不同的类型,它将简单地评估为 false。

关于javascript - 可以通过键获取 JSON 中的一些值,其他的我无法获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778144/

相关文章:

javascript - D3/如果子状态为红色或有问题,则更改父级的颜色

javascript - 连接 JSON 对象中的设备读数 - Javascript

javascript - 无需 jQuery 即可滚动到事件折叠面板

javascript - 在弹出窗口中显示组合的 Canvas 图像

javascript - SEO - 说 "optimize your code putting the JS code in the bottom of the page"正确吗?

jquery - Cordova/Jquery Mobile - 单击按钮激活两个页面?

javascript - ng-bind-html 不会阻止跨站点脚本

javascript - onclick javascript 增加类值

JSON 验证器给我错误

sql - 过滤和排序 SQL 查询以重新创建嵌套结构