按对象属性的唯一数组

编程入门 行业动态 更新时间:2024-10-15 22:22:13
本文介绍了按对象属性的唯一数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

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() }); })

更多推荐

按对象属性的唯一数组

本文发布于:2023-11-30 16:10:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1650640.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   属性   对象

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!