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;
}