如何遍历对象数组并将值放入过滤器中
How can I iterate through an object array and place values into a filter?
我正在使用剑道ui网格来显示数据。我能够获得我想在对象阵列中使用的过滤器
Object {logic: "and", filters: Array[3]}
filters:Array[3]
0:Object
field:"CheckDate"
operator:"gte"
value:Fri Jan 01 2016 00:00:00 GMT-0500 (Eastern Standard Time)
1:Object
field:"CheckDate"
operator:"lte"
value:Tue Jan 31 2017 00:00:00 GMT-0500 (Eastern Standard Time)
我不明白的是如何在这个数组中循环,并将过滤器中的值用于剑道网格。过滤器代码如下所示:
grid.dataSource.filter({
logic: "and",
filters: [
{ field: "EmployeeName", operator: "contains", value: val }
]
});
我必须为数组中的每个项目画一行来应用过滤器。
您是否要求for ... in
语句?如果顺序不重要,我会使用它。
for (var val in yourObject.filters){
grid.dataSource.filter({
logic: "and",
filters: [
{ field: val[0], operator: val[1], value: val[2] }
]
});
};
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
Javascript for ... in
的行为如果你习惯于编写C#或Java代码,那就非常奇怪了,所以我更喜欢使用jQuery.each,它的行为正如我所期望的那样。
$.each(yourObject.filters, function(index, element){
grid.dataSource.filter({
logic: "and",
filters: [
{ field: element[0], operator: element[1], value: element[2] }
]
});
});
对象Object {logic: "and", filters: Array[3]}
的结构实际上是kendo数据源所期望的过滤。然而,要手动执行此操作,您可以尝试以下操作,
var generateFilterArray = function (yourFilterObject) {
var filters = []
for (var i = 0; i < yourFilterObject.filters.length; i++) {
filters.push({
field: yourFilterObject.filters[i].field,
operator: yourFilterObject.filters[i].operator,
value: yourFilterObject.filters[i].value
});
}
return {
logic: yourFilterObject.logic,
filters: filters
};
}
grid.dataSource.filter(generateFilterArray(yourFilterObject))
最后,记住不要在循环中调用grid.dataSource.filter(),因为它会多次调用远程端点,所以总是先创建filter对象,然后像上所做的那样应用它
相关文章:
- angularjs ng基于点击时的数组值重复过滤器
- javascript和具有唯一密钥的es6过滤器数组
- 数组过滤器导致无限$digest循环
- (角度.js)如何通过过滤器计算数组中有多少项目
- AngularJS过滤器不适用于我的数据:关联数组
- 键上的javascript数组对象过滤器
- 如何遍历对象数组并将值放入过滤器中
- 如何使用angular js过滤器格式化数组中的值
- Javascript数组过滤器:获取正确的上下文
- 如何在angularjs中对指令内部的JSON数组使用过滤器
- 对象中的角度过滤器空数组
- 数组中的Angular js过滤器数组
- 数组中的javascript过滤器数组
- 通过过滤器数组设置对象数组的属性
- 使用类似查询的对象过滤器数组下划线
- 在 JavaScript 中使用第二个数组的过滤器数组
- rxjs的filter方法没有返回过滤器数组
- 过滤器数组递归查找父级
- 基于this.props.params.id的React过滤器数组
- JavaScript 过滤器数组多个条件