而不是 $.each 想使用 Array.find
Instead of $.each want to use Array.find
我想使用 Array.find 而不是 $.each 以便它在找到结果后停止循环,但我无法找出 return 邮政编码的正确语法。
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;
这应该可行(假设您可以使用 ES6 语法,例如箭头函数):
const zipcode = searchAddressComponents.find(
component => component.types[0] === 'postal_code'
).short_name;
我想使用 Array.find 而不是 $.each 以便它在找到结果后停止循环,但我无法找出 return 邮政编码的正确语法。
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;
这应该可行(假设您可以使用 ES6 语法,例如箭头函数):
const zipcode = searchAddressComponents.find(
component => component.types[0] === 'postal_code'
).short_name;