自定义查询字符串分析器返回不正确的结果
custom query string parser returns incorrect result
我构建了一个实用程序函数。您向它传递一个值数组,它会检查所有这些值是否都是查询字符串中的键。如果所有值都是查询字符串中的键,则返回 true,否则返回 false。
这是函数:
function hasParams(haystack, needle){
var keys = [];
var needles = $.isArray( needle ) ? needle : [needle];
var needles_len = needles.length;
var found = 0;
if(!haystack.indexOf('?') > 0){
return false;
}
var query = haystack.substr(haystack.indexOf('?') + 1).split("&");
for(var i=0;i<query.length;i++){
var key = query[i].split("=")[0];
keys.push(key);
}
for(var j=0;i<keys.length;j++){
for(var k=0;i<needles.length;k++){
if(keys[j] == needles[k]){
found++;
}
if(needles_len == found){
return true;
}
}
}
return false;
}
这应该返回 true(因为查询字符串同时包含 status_filter_is 和 user_filter_is(,但它返回 false:
hasParams("/contacts/56f33c236d616354c0020000/tasks?contactable_type=Lead&id=56f33c236d616354c0020000&status_filter_is=unresolved&user_filter_is=all&action=index&controller=tasks&contact_id=56f33c236d616354c0020000&sort=date_due&direction=asc&page=", ['status_filter_is', 'user_filter_is'])
所有for
循环的中间都有i
,而不是j
或k
。
首先i<keys.length;
应该j<keys.length;
其次,i<needles.length;
应该k<needles.length;
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- 元素值比较的结果不正确
- 自定义查询字符串分析器返回不正确的结果
- 检查所选值之间的值,结果不正确
- 如果语句给出不正确的结果
- 反向地理编码结果不正确
- 算术给出不正确的结果
- 日期() 结果不正确
- 使用点后有四位数字的十进制值计算中的结果不正确
- Javascript数学给出了不正确的结果,我该如何解决这个问题
- Javascript函数indexOf返回不正确的结果
- 除法结果不正确
- JavaScript计算结果不正确
- 为什么我的$(选择器).索引(过滤器选择器)返回不正确的结果
- 当视图从操作结果返回时,选择2脚本不正确渲染
- $(“#id”).val();显示不正确的结果
- 使用用户输入的Javascript梯形区域计算,结果不正确
- 简单的javascript十进制加法会产生不正确的结果
- 在另一个函数中返回一个函数的结果会产生不正确的结果