最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

按对象属性的唯一数组

SEO心得admin74浏览0评论
本文介绍了按对象属性的唯一数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如何根据属性使对象数组唯一?在这种情况下,字段":

How do I make an array of objects unique based on a property? In this instance, "field":

0: Object field: "name" operator: "eq" value: "d" 1: Object field: "gridSearch" operator: "contains" value: "1" 2: Object field: "gridSearch" operator: "contains" value: "12"

作为参考,这是我在解决此问题时所使用的一些代码:

For reference here is the bit of code I'm using where this problem is concerned:

$('#gridSearch').keyup(function() { var currentFilters = $('.k-grid').data("kendoGrid").dataSource.filter(); currentFilters.filters.push({ field: 'gridSearch', operator: 'contains', value: $(this).val() }) console.log(currentFilters.filters) })

推荐答案

您可以使用 jQuery.extend 为此;由于您想将其用于剑道网格,因此您可以执行以下操作(示例仅适用于没有嵌套的过滤器):

You can use jQuery.extend for this; since you want to use this for a Kendo Grid, maybe you could do something like this (example only works for filters without nesting):

kendo.ui.Grid.fn.addOrUpdateFilter = function (filter) { var filterConfig = this.dataSource.filter(), filters, isNewFilter = true; if (filterConfig) { filters = filterConfig.filters; for (var i = 0; i < filters.length; i++) { if (filters[i].field === filter.field) { // there already was a filter for this field, so update it $.extend(filters[i], filter); isNewFilter = false; } } } else { filters = []; } // there was no filter for this field, so add it if (isNewFilter) { filters.push(filter); } this.dataSource.filter(filters); }

因此您可以在处理程序中执行此操作:

so you could do this in your handler:

$('#gridSearch').keyup(function() { var grid = $('.k-grid').first().data("kendoGrid"); grid.addOrUpdateFilter({ field: 'gridSearch', operator: 'contains', value: $(this).val() }); })
发布评论

评论列表(0)

  1. 暂无评论