Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中查找替代方法?_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 在jQuery中查找替代方法?

Javascript 在jQuery中查找替代方法?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我使用的是我之前问过的方法,我意识到IE中不支持它。IE中是否支持jQuery等价物,或者甚至不同的Javascript等价物 var区域=[{ “区域”:“一个”, “Zipcode”:[“69122”、“69125”、“69128”、“69129”] }, { “区域”:“两个”, “Zipcode”:[“67515”、“67516”、“67518”、“67521”] } ]; $(函数(){ $('#userZip')。提交(函数(e){ e、 预防默认值(); var userZip=

我使用的是我之前问过的方法,我意识到IE中不支持它。IE中是否支持jQuery等价物,或者甚至不同的Javascript等价物

var区域=[{
“区域”:“一个”,
“Zipcode”:[“69122”、“69125”、“69128”、“69129”]
},
{
“区域”:“两个”,
“Zipcode”:[“67515”、“67516”、“67518”、“67521”]
}
];
$(函数(){
$('#userZip')。提交(函数(e){
e、 预防默认值();
var userZip=$('input[type=“text”]”)。val();
变量区域=区域。查找(函数(区域){
返回区.zipcodes.indexOf(userZip)>-1;
});
警报(“区域:+Zone.Zone”);
});
});
i{
显示:块;
}

输入邮政编码“69122”作为示例

IE9+支持Array.filter,如果这足够好的话

显然,您可能会得到多个结果,因此如果您打算这样做,只需选择第一个结果。

polyfill:

Array.prototype.find = Array.prototype.find || function (callback) {
    for (var i = 0; i < this.length; i++) {
      if (callback(this[i], i)) {
        return this[i];
      }
    }
};
Array.prototype.find=Array.prototype.find | |函数(回调){
for(var i=0;i

如果您想要一个更好的,请查看您提供的第一个链接的polyfill部分…

或者,您也可以使用标准for loop

var区域=[{
“区域”:“一个”,
“Zipcode”:[“69122”、“69125”、“69128”、“69129”]
},
{
“区域”:“两个”,
“Zipcode”:[“67515”、“67516”、“67518”、“67521”]
}
];
功能findZone(zns,zip){
var zone={};
对于(var i=0;ilog(findZone(zones,“67515”))
使用jQuery的函数:

$(function() {
  $('#userZip').submit(function(e) {
    e.preventDefault();
    var userZip = $('input[type="text"]').val();
    var zone = $.grep(zones, function (element, index) {
      if ($.inArray( userZip, element.zipcodes ) > -1) return true;
    });
    alert("Zone: " + zone[0].zone);
  });
});

在这里摆弄:

jQuery.grep
的工作原理与数组的
find
方法类似,它使用提供的函数对类似数组的对象和过滤器进行操作。 结果是一个新数组,其中只包含通过测试的元素。它还有一个可选的
invert
参数

e、 为你的代码

var filteredZones = $.grep(zones, function(zone) {
  return zone.zipcodes.indexOf(userZip) > -1;
});

if (filteredZones.length) {
  var zone = filteredZones[0];
}

您可以在此处了解更多信息-

为什么不在传统浏览器中对其进行修补?依赖大型库提供简单的兼容性补丁似乎不是最好的方法。jQuery由于其他原因已经包含在这个项目中,因此它不会添加任何内容。