我有一个使用此函数过滤的数组:
function filter(arr, criteria) {
return arr.filter(function(obj) {
return Object.keys(criteria).every(function(c) {
return !(criteria[c]) || obj[c] == criteria[c];
});
});
}
var arr = filter(arr, { dep: dv, arr: av, car: cv, epi: acv, dur: dv });
Run Code Online (Sandbox Code Playgroud)
我有很多选项,用户可以在选择中选择.持续时间,这是我有的:
<select name="duration" id="duration">
<option selected disabled hidden value="">-</option>
<option value="l1">Less than 1 hour</option>
<option value="1to3">1 to 3 hours</option>
<option value="3to6">3 to 6 hours</option>
<option value="6to10">6 to 10 hours</option>
<option value="m10">More than 10 hours</option>
</select>
Run Code Online (Sandbox Code Playgroud)
但该过滤器基于准确的标准.我想过滤arr1到3或6到10之间的浮点数.我还希望能够运行我在其中看到的其他过滤器,包括dep,arr,car,epi,dur.有什么方法可以做到这一点吗?
我有一个具有id和类型值({ id: '23', kind: 'apple' }, { id: '35', kind: broccoli })的数组,但我有一个需要id的名称的函数(假装id 23表示水果,而id 35表示蔬菜),例如'fruits'或'vegetables'.我写出了一个不同的数组,其中包含id({ id: '23', type: 'fruit' }, { id: '35', type: 'vegetable' })的id和名称.我怎样才能过滤第一个数组,以便将id从23或35改为说水果或蔬菜?
我有一个函数接受一个$filter参数,然后根据参数中的过滤器从SQL表中提取数据.起初我尝试重载函数,以便一个函数接受一个$filter变量,另一个函数接受一个数组用于多个过滤器.但后来,我开始想知道如何清理过滤器标签.
这可能令人困惑,所以这里有一些例子.例如,用户在搜索框中键入以显示名为John的所有用户.因此,$filter_tag将设置为'name'并将$filter设置为'John'.我的PDO查询看起来像这样:
$query = "SELECT `name` FROM `users` WHERE ";
$query .= $filter_tag." = ?";
Run Code Online (Sandbox Code Playgroud)
问题是$filter_tag没有消毒.如果我对它进行清理并且变量被转义,则查询将不起作用.也许我让它变得比它需要的更复杂,并且有一些简单的解决方案.
如果您不理解我要问的内容,请发表评论.
我有一个$ .post jQuery调用,调用一个php文件.然后该文件返回JSON编码的数组.然后,映射数组以编辑数组中的一些数据.但是,我得到了错误arr.map is not function.
这是$ .post调用中传递的数组.
[{"set":"Alpha","key":"256"},
{"set":"Omega","key":"671"},
{"set":"Theta","key":"762"},
{"set":"Beta","key":"462"}]
Run Code Online (Sandbox Code Playgroud)
这是地图功能.
idHash = {'Alpha': '1', 'Beta': '2', 'Theta': '3', 'Omega': '4'};
var arr = arr.map(function(item){
item.set = idHash[item.set]
return item;
})
Run Code Online (Sandbox Code Playgroud)
在map函数之后,数组应该如下所示.
[{"set":"1","key":"256"},
{"set":"4","key":"671"},
{"set":"3","key":"762"},
{"set":"2","key":"462"}]
Run Code Online (Sandbox Code Playgroud)