我想使用 Array.find 而不是 $.each 以便它在找到结果后停止循环,但我无法找出返回邮政编码的正确语法。
navigator.geolocation.getCurrentPosition(function (position) {
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(
position.coords.latitude, position.coords.longitude);
geocoder.geocode({
'latLng': latLng
}, function (results, status) {
var searchAddressComponents = results[0].address_components;
var zipcode = "";
//searchAddressComponents.find(function() {
//});
/* function isZipcode() {
if(results[0].address_components.types[0]=="postal_code"){
zipcode = element.short_name;
}
}*/
//THIS WORKS BUT WANT TO USE ARRAY.FIND to return Zipcode
$.each(searchAddressComponents, function(){
if(this.types[0]=="postal_code"){
zipcode = this.short_name;
}
});
}); //END OF GEOCODER
});
最佳答案
给这只猫剥皮的方法有很多种。但是如果你想使用 Array#find
,方法如下:
zipcode = searchAddressComponents.find(component => component.types[0] == "postal_code").short_name;
对于pre-ES6,函数如下
zipcode = searchAddressComponents.find(function (component) {
return component.types[0] == "postal_code";
}).short_name;
关于javascript - 而不是 $.each 想使用 Array.find,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49307608/