javascript - 而不是 $.each 想使用 Array.find

标签 javascript jquery arrays ecmascript-6 geolocation

我想使用 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/

相关文章:

Javascript - 在框架中加载页面

JavaScript 监听 jQuery 事件

javascript - 如何删除 javascript/jquery 中动态创建的元素?

javascript - 将对象添加到数组

javascript - 如何在单击时获取数组中对象的选定值?

arrays - 当唯一 ID 匹配时,将键值对添加到哈希数组

javascript - "this"的绑定(bind)

javascript - 从axios请求获取数据

javascript - 使用句点格式化输入字段

javascript - 当我在 codeigniter 中使用 jquery 发出警报时没有任何反应