Javascript 根据json数据中的机场代码获取机场名称

Javascript 根据json数据中的机场代码获取机场名称,javascript,json,country-codes,Javascript,Json,Country Codes,在一个航班预订网站上工作。有一个包含机场代码、城市名称和国家名称的json文件 现在,如果我的iata机场代码与UTK匹配,我想返回名称。用于通过其iata在数组中查找对象: var arr = [{"iata":"UTK","lon":"169.86667","iso":"MH","status":1,"name":"Utirik Airport","continent":"OC","type":"airport","lat":"11.233333","size":"small"}]; f

在一个航班预订网站上工作。有一个包含机场代码、城市名称和国家名称的
json
文件

现在,如果我的
iata
机场代码与
UTK
匹配,我想返回名称。

用于通过其
iata
数组中查找对象:

var arr = [{"iata":"UTK","lon":"169.86667","iso":"MH","status":1,"name":"Utirik Airport","continent":"OC","type":"airport","lat":"11.233333","size":"small"}];

function findByCode(arr, iata){
    var filtered = arr.filter(function(e){return e.iata = iata});
    return (filtered.length == 1) ? filtered[0]:undefined;
}

console.log(findByCode(arr,"UTK").name);

JS Fiddle:

这是基本的搜索!您需要在数组上循环,检查每个项是否有匹配的代码,然后返回结果。以下是一个函数:

function findAirport(myArray, iata){
    for(var i = 0; i < myArray.length; i++){
        var item = myArray[i];
        if(item["iata"] === iata){
            return item;
        }
    }
    return null;
}

为了突出我对使用简单for循环的偏好,而不是使用其他函数,例如
过滤器
,将我的答案与另一个使用
过滤器
的答案进行比较。我知道这在大多数实际用例中毫无意义,但我想保留对jsperf链接的引用:)

注意:此答案是在编辑问题标签之前提供的。在发布此问题时,询问的是javascript解决方案

$string='[{“iata”:“UTK”,“lon”:“169.86667”,“iso”:“MH”,“状态”:1,“名称”:“Utirik机场”,“大陆”:“OC”,“类型”:“机场”,“lat”:“11.233333”,“大小”:“小”};
$string = '[{"iata":"UTK","lon":"169.86667","iso":"MH","status":1,"name":"Utirik Airport","continent":"OC","type":"airport","lat":"11.233333","size":"small"}]';
 $data = json_decode($string);
echo count($data);
for($i=0;$i<count($data);$i++){
if($data[$i]->iata == 'UTK') echo $data[$i]->name;
}
$data=json_decode($string); 回波计数(数据); 对于($i=0;$iiata=='UTK'),echo$data[$i]->name; }

如果文件中的数据不是$string,则可以使用file_get_contents

使用for循环遍历数组并检查代码。请不要添加PHP标记。您的标记无效,因为该问题与PHP无关。你的问题现在是个糟糕的问题,因为不清楚你在问什么。您想要javascript或PHP的解决方案吗?您不能同时拥有这两种技术-除非您的特定需求同时使用这两种技术。。。在这种情况下,您需要显示当前的代码尝试。我将不得不否决这个问题,直到你改进它为止,sorryHere PHP和json有关系,如果有人在PHP中搜索相同的代码,这个答案可能会帮助他们。所以我加了tag@RadhakrishnaRayidi:所以不是那样工作的!你不能问一般性的问题,用多种语言寻求解决方案。随便挑一个哇!工作得很有魅力:)谢谢dude@RadhakrishnaRayidi:希望你能掌握这一新知识,并在需要在Futuratanks中搜索数组时应用它!这不是一个PHP问题。Javascript只回答PleaseevenThow,这个答案对PHP开发人员也有帮助。那太可怕了+1@RadhakrishnaRayidi:stackoverflow不是这样工作的。答案应该回答正确的问题。不是替代语言实现的参考点。关于如何在PHPI中搜索JSON数组,已经有很多问题(包括答案)认为该问题被标记为(javascript,php)问题,所以两个解决方案中的一个就足够了。@Johnta:这不是从。。。现在它被错误地标记了。你认为添加其他语言也可以接受吗?我们加一个C#答案好吗?也可能是Java版本?缩小版!塔克斯dude@RadhakrishnaRayidi很高兴我能帮忙!
$string = '[{"iata":"UTK","lon":"169.86667","iso":"MH","status":1,"name":"Utirik Airport","continent":"OC","type":"airport","lat":"11.233333","size":"small"}]';
 $data = json_decode($string);
echo count($data);
for($i=0;$i<count($data);$i++){
if($data[$i]->iata == 'UTK') echo $data[$i]->name;
}