繁体   English   中英

Vue JS-过滤具有多列的表

[英]Vue js - filter a table with multiple column

我是一个初学者,所以这对你们来说可能很明显,但是...我正在Vue js 2.0中创建一个过滤器,该过滤器可以在任何列中进行过滤。 我想出了这个

    computed: {
    filteredAndSortedData() {
        let result = this.testData;
        if (this.filterValue) {
            result = result.filter(item =>                
item.round.includes(this.filterValue) ||
item.cat.includes(this.filterValue) ||
item.player1.includes(this.filterValue) ||                                                                  
item.player2.includes(this.filterValue));
        }

这是jsfiddle示例: https ://jsfiddle.net/ebxsvac0/我正在尝试做的事情。

我的问题是如何在不对列变量进行硬编码的情况下重写此代码。 谢谢

您可以改用以下内容:

if (this.filterValue) {
    result = result.filter(item => Object.keys(item).map((key) => item[key].includes(this.filterValue)).includes(true));
}

对于每个项目-遍历所有键(它们是列名称),并检查每个人是否该项目包含要在该列中过滤的值。

这是您的jsfiddle的更新:
https://jsfiddle.net/ebxsvac0/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM