美文网首页程序员
前端对列表数据的过滤

前端对列表数据的过滤

作者: Young_Kind | 来源:发表于2018-07-05 18:34 被阅读168次

有时候搜索的操作是由前端负责完成的,下面是多条件搜索的demo代码
下面模拟了4种搜索条件

<template>
  <div id="filtration">
    姓名:<input type="text" v-model="searchData.name">
    年纪:<input type="text" v-model="searchData.age">
    性别:<select id="sex" v-model="searchData.sex">
    <option value="">所有</option>
    <option value="F">女</option>
    <option value="M">男</option>
  </select>
    年纪:<select id="grade" v-model="searchData.grade">
    <option value="">所有</option>
    <option value="高1">高1</option>
    <option value="高2">高2</option>
    <option value="高3">高3</option>
  </select>
    <button @click="doFilter">搜索</button>
    <ul v-for="(item, index) in list">
      <li>id:{{index}}--{{item}}}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    name: "filtration",
    data() {
      return {
        searchData:{
          name:'',
          age:'',
          sex:'',
          grade:''
        },
        list: [
          {name: '小明', age: 18, sex: 'F', grade: '高1'},
          {name: '小红', age: 19, sex: 'F', grade: '高2'},
          {name: '小东', age: 19, sex: 'M', grade: '高2'},
          {name: '小酸', age: 18, sex: 'F', grade: '高1'},
          {name: '小天', age: 19, sex: 'M', grade: '高2'}
        ]
      }
    },
    methods:{
      doFilter(){
        let _this=this;
        function FilterFUN(FilterList,Filterkey){
          if(!_this.searchData[Filterkey]) return FilterList
          return FilterList.filter(item=>{ //利用数组的filter方法过滤并改变原来数组
            if((item[Filterkey]+'').indexOf(_this.searchData[Filterkey])!=-1){
              return item
            }
          });
        }
        let [...FilterList]=this.list//深度复制数组
        for(let Filterkey in _this.searchData ){
          FilterList=FilterFUN(FilterList,Filterkey);
        }
        console.log('FilterList',FilterList);
      },
    }
  }
</script>

相关文章

  • 前端对列表数据的过滤

    有时候搜索的操作是由前端负责完成的,下面是多条件搜索的demo代码下面模拟了4种搜索条件

  • javascript开发框架-pTemplateJs

    pTemplateJs,前端开发框架。 模板及灵活的语法、数据绑定、数据过滤、事件控制、条件及列表渲染、样式控制、...

  • 在线商城项目06-商品列表页前端逻辑实现

    简介 本篇,我们做一些商品列表页的前端逻辑功能。 价格过滤列表的点击逻辑 价格过滤列表的露出逻辑 排序点击的逻辑 ...

  • Python编程技巧整理

    过滤列表中的数据 实际案例: 过滤掉列表里面的负数 案例分析: filter(function or None, ...

  • Python高级-函数式编程2

    filter函数 过滤函数:对一组数据进行过滤,符合条件的数据会生成一个新的列表并返回 跟map相比较相同:都对列...

  • xss的防御

    XSS产生的原因 xss是怎么产生的呢?是由于网站(包括前端部分和后端部分)没有对用户提交的数据过滤或者过滤不严导...

  • 使用Gson从前端发送对象列表,后台使用Gson进行格式转换

    使用Gson从前端发送对象列表,后台使用Gson进行格式转换 前端发送数据必须为对象列表形式,同时要将对象列表转换...

  • React如何对列表数据渲染以及key

    列表数据在项目中很常见,身为前端工程师的你几乎天天都要与列表数据打交道,像新闻列表、用户列表、流水列表等等。本篇文...

  • #关于搜索、列表页展示问题的思考#

    为什么详情页对、列表页不对: 虽然是同取的批次数据,但列表页的展示结果是由搜索引擎过滤、数据实时变更会触发重新计算...

  • Python高效编程技巧

    工作中经常要处理各种各样的数据, 一:在列表,字典中根据条件筛选数据 1.假设有一个数字列表 data, 过滤列表...

网友评论

    本文标题:前端对列表数据的过滤

    本文链接:https://www.haomeiwen.com/subject/pbtmuftx.html