{hero}

filter()

自:DataTables 1.10

使用所有通过给定测试的结果集元素创建一个新的 API 实例。

描述

filter() 方法提供了一种筛选 API 实例结果集中不通过已提供的回调方法设置的条件的内容。不要将此方法与 search() 混淆,后者用于在 DataTable 中搜索记录,也就是说,filter 方法不会改变在 DataTable 中显示的行。

在使用诸如 rows()columns() 这类复数方法时,您可能希望使用 eq() 实用方法将 API 实例从二维数组减少到一维数组,可以使用此方法对其进行迭代。

此方法利用了 DataTables API 对象“类似数组”这一事实,它继承了很多 Javascript Array 类型的功能和方法。

在这种情况下,此方法是 Javascript Array.prototype.filter 方法的代理,并作为 DataTables API 的实用方法提供。有关原始方法的详细信息,请参阅 filter 的 Mozilla MDN 文档。在不支持本机 filter 的浏览器中,会提供一个 polyfill 以允许此 DataTables 方法按预期操作。

类型

函数 filter( fn )

描述

迭代 API 实例的结果集,测试每一项,根据通过的项创建一个新的实例。

参数
返回

使用回调中的测试通过的结果集中的值的新 API 实例。

示例

从一列中筛选数据,只保留大于 20 的数据

var table = new DataTable('#myTable');

var filteredData = table
	.column(0)
	.data()
	.filter(function (value, index) {
		return value > 20 ? true : false;
	});

从多列中筛选数据,获取两列中单元格中大于 20 的数据点

var table = new DataTable('#myTable');

var filteredData = table
	.columns([0, 1])
	.data()
	.flatten()
	.filter(function (value, index) {
		return value > 20 ? true : false;
	});