• forEach,map,filter,find,some,every区别


    <template>

      <card :filter="false">
        <template #header>
          <el-button type="primary" icon="el-icon-search" @click="inactiveFn">启用状态</el-button>
          <el-button type="primary" icon="el-icon-search" @click="namesFn">所有职称</el-button>
          <el-button type="primary" icon="el-icon-search" @click="idsFn">键值对id</el-button>
          <el-button type="primary" icon="el-icon-search" @click="strprofessnameFn">1006的职称</el-button>
          <el-button type="primary" icon="el-icon-search" @click="strprofessnameOneFn">第一个1006的职称</el-button>
          <el-button type="primary" icon="el-icon-search" @click="isHaveFn">是否存在1009</el-button>
        </template>
        <el-table
          ref="table"
          :header-cell-style="{background:'#F5F4F7'}"
          :data="tableData"
          border
          fit
          stripe
          highlight-current-row
          style=" 100%;"
        >
          <el-table-column
            type="index"
            width="60"
            label="序号"
            align="center"
          />
          <el-table-column
            prop="strprofesscode"
            label="职称编码"
            width="180"
          />
          <el-table-column
            prop="strprofessname"
            label="职称名称"
            width="180"
          />
          <el-table-column
            prop="strprofess"
            label="上级"
            width="180"
          />
          <el-table-column
            prop="blnisdetail"
            label="是否末级"
            align="center"
            width="100"
          >
            <template v-slot="scope">
              {{ scope.row.blnisdetail|isDetail }}
            </template>
          </el-table-column>
          <el-table-column
            prop="strnote"
            label="备注"
            min-width="180"
          />
          <el-table-column
            prop="blnisinactive"
            label="状态"
            align="center"
            width="100"
          >
            <template v-slot="scope">
              {{ scope.row.blnisinactive|State }}
            </template>
          </el-table-column>
        </el-table>
        所有职称:{{ names }}
        <br>
        键值对id:{{ ids }}
        <br>
        1006的职称:{{ strprofessname }}
        <br>
        第一个1006的职称:{{ strprofessnameOne.strprofessname }}
        <br>
        是否存在1009:{{ code1009 }}
      </card>
    </template>
    <script>
    import { res } from './data.js'
    export default {
      name: 'TableArea',
      data() {
        return {
          res: res,
          tableData: [],
          names: [],
          ids: [],
          strprofessname: [],
          strprofessnameOne: [],
          code1009: ''
        }
      },
      created() {
        this.tableData = this.res.data.rows
      },
      methods: {
        // filter()与find()使用方法也相同。同样都接收三个参数。不同的地方在于返回值。filter()返回的是数组,数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素。如果条件不满足,filter()返回的是一个空数组,而find()返回的是undefined
        // const myArr=[1,2,3,4,5,6];
        // var v=myArr.find(value=>value>4);
        // console.log(v);// 5
        // 1.filter用法:过滤状态为'启用'的数据
        inactiveFn() {
          this.tableData = this.tableData.filter(item => {
            return item.blnisinactive === 0
            // 过滤编码大于'1007'的信息
            // return item.strprofesscode * 1 > 1007
          })
        },
        // 2.map用法:返回所有的职称,不许重复
        namesFn() {
          this.names = this.tableData.map(item => {
            return item.strprofessname
          })
          this.names = this._.uniq(this.names)
        },
        // 3.map用法:返回所有键值对id
        idsFn() {
          this.ids = this.tableData.map(item => {
            return { lngprofessid: item.lngprofessid }
          })
        },
        // 4.forEach用法:找到编码为'1006'职称,---注意 filter,some,find,map 结果一样
        strprofessnameFn() {
          this.tableData.forEach(item => {
            if (item.strprofesscode === '1006') {
              this.strprofessname.push(item.strprofessname) // 正厅级 院长
              // this.strprofessname = item.strprofessname// 显示的是最后一个
            }
          })
        },
        // 5.找到第一个编码为'1006'职称 filter过滤出所有,find找到第一个
        strprofessnameOneFn() {
          this.strprofessnameOne = this.tableData.find(item => {
            return item.strprofesscode === '1006'
          })
        },
        // 6.some用法:一个true则为true,every用法:所有true才为true
        // 做判断用,是否存在编码1009  some:返回true,every:返回false
        isHaveFn() {
          this.code1009 = this.tableData.some(item => {
            return item.strprofesscode === '1009'
          })
        }
        // some用法:
        // let arr = [1,2,3,4];
        // let res = arr.some(item => item > 4)
        // console.log(res);   // false
        // every用法:
        // let arr = [1,2,3,4];
        // let res = arr.every(item => item > 0)
        // console.log(res);   // true
      }
    }
    </script>
  • 相关阅读:
    量子计算机算法与应用研究论文(转载务必注明出处)
    [置顶] html学习笔记,锚点,超链接,table布局,表头,h,sub,blockquote,ul,li,ol.dl,加入收藏,打印,弹出窗口
    [置顶] 第一天初试linux
    [置顶] Datalist嵌套datalist,页面传值,加密,数据绑定
    [置顶] asp.net(c#)中相对路径(虚拟路径)和物理磁盘路径的转换
    [置顶] c#对于文件的操作
    [置顶] 读取pdf并且在web页面中显示
    [置顶] gridview中嵌套gridview(并实现子gridview的数据绑定),页面传值,加密,数据绑定
    git的使用学习笔记--项目版本操作
    git的使用学习笔记---合并分支
  • 原文地址:https://www.cnblogs.com/hellofangfang/p/14662173.html
Copyright © 2020-2023  润新知