Vue中遍历数组的新方法实例详解


Posted in Javascript onJuly 21, 2019

1、foreach

foreach循环对不能使用return来停止循环

search(keyword){
     var newList = []
     this.urls.forEach(item =>{
      if(item.name.indexOf(keyword) != -1){
       newList.push(item)
      }
     })
     return newList
    }

2、filter

item对象就是遍历数组中的一个元素,includes是es6中的新方法,在search方法中直接返回新数组

search(keyword){
     return this.urls.filter(item =>{
      if(item.name.includes(keyword)){
       return item
    }
  })
 }

3、findIndex

返回true后index就可以获取到匹配的元素在进行删除

del(row){
     this.$confirm("确定要删除吗?", "删除").then(action=>{
     var index = this.urls.findIndex(item =>{
      if(item.name == row.name){
       return true;
      }
     })
     this.urls.splice(index, 1)
});

4、some

如果匹配成功就return true跳出some的循环

del(row){
    this.$confirm("确定要删除吗?", "删除").then(action=>{
      this.urls.some((item, i) =>{
      if(item.name == row.name){
       this.urls.splice(i, 1)
       return true;
      }
     }) 
  });
}

5、上例子,在一个vue的data中存入一个固定的数组,对数组进行遍历,实现搜索功能,删除功能

在el-table中 :data中绑定一个方法,方法中对固定的数组urls进行遍历,返回一个新的数组实现搜索功能

<template>
  <div>
   <label style="float: left;">
   搜索关键字:
   <input type="text" class="form-control" v-model="keyword">
  </label>
    <el-table :data="search(keyword)" size="small" :stripe="true" :border="true" @select="select" @select-all="select">
      <el-table-column type="selection"></el-table-column>
      <el-table-column type="index"></el-table-column>
      <el-table-column label="网站名" prop="name" width="200">
        <template slot-scope="slot">
          <a href="slot.row.url" target="_blank">{{slot.row.name}}</a>
        </template>
      </el-table-column>
      <el-table-column label="网址" prop="url"></el-table-column>
      <el-table-column label="类型" prop="type" width="50"></el-table-column>
      <el-table-column label="国家" prop="country" width="50"></el-table-column>
      <el-table-column label="操作" width="50">
        <template slot-scope="slot">
          <el-button size="mini" type="text" icon="el-icon-delete" @click="del(slot.row)"></el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-divider content-position="left">表格操作</el-divider>
    <el-button @click="batchDelete" type="danger" icon="el-icon-delete" size="small">批量删除</el-button>
  </div>
</template>
<script>
  export default {
    data() {
      return {
    keyword:'',
        selections: [],
        urls: [{
            name: "新浪",
            url: "http://www.sina.com",
            type: "资讯",
            country: "中国"
          },
          {
            name: "腾讯",
            url: "http://www.tencent.com",
            type: "聊天",
            country: "中国"
          },
          {
            name: "谷歌",
            url: "http://www.google.com",
            type: "资讯",
            country: "美国"
          },
          {
            name: "韬睿",
            url: "http://www.51i-star.com",
            type: "教育",
            country: "中国"
          }
        ]
      };
    },
    methods: {
      del(row){
        this.$confirm("确定要删除吗?", "删除").then(action=>{
     /* this.urls.some((item, i) =>{
      if(item.name == row.name){
       this.urls.splice(i, 1)
       return true;
      }
     }) */
     var index = this.urls.findIndex(item =>{
      if(item.name == row.name){
       return true;
      }
     })
     this.urls.splice(index, 1)
        });
      },
      select(selections, row) {
        this.selections = selections;
      },
      batchDelete() {
        this.$confirm("确定要删除吗?", "删除")
          .then(action => {
            for (var i = this.urls.length - 1; i >= 0; i--) {
              for (var j = this.selections.length - 1; j >= 0; j--) {
                if (this.urls[i].name == this.selections[j].name) {
                  this.urls.splice(i, 1);
                  break;
                }
              }
            }
          })
          .catch(error => {
            alert(error);
            this.$message('删除取消');
          });
      },
   search(keyword){
    /* var newList = []
    this.urls.forEach(item =>{
     if(item.name.indexOf(keyword) != -1){
      newList.push(item)
     }
    })
    return newList */
    return this.urls.filter(item =>{
     if(item.name.includes(keyword)){
      return item
     }
    })
   }
    }
  }
</script>
<style>
</style>

6、效果图为

Vue中遍历数组的新方法实例详解

总结

以上所述是小编给大家介绍的Vue中遍历数组的新方法实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
Nov 06 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
Angular4学习笔记之实现绑定和分包
Aug 01 Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
vue实现选项卡及选项卡切换效果
Apr 24 Javascript
Vue 监听列表item渲染事件方法
Sep 06 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
Vue路由模块化配置的完整步骤
Aug 14 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
Vue中fragment.js使用方法小结
Feb 17 Javascript
Vue项目中使用WebUploader实现文件上传的方法
Jul 21 #Javascript
jquery插件开发模式实例详解
Jul 20 #jQuery
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 #Javascript
JavaScript展开操作符(Spread operator)详解
Jul 20 #Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 #Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 #Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 #Javascript
You might like
php中日期加减法运算实现代码
2011/12/08 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
调试php程序的简单步骤
2019/10/04 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
javascript操作文本框readOnly
2007/05/15 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python 3.8 新功能全解
2019/07/25 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
印度在线购物网站:Paytmmall
2019/07/24 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
中文教师求职信
2014/02/22 职场文书
校庆标语集锦
2014/06/25 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
诚信承诺书
2015/01/19 职场文书
团员个人总结
2015/02/26 职场文书
初中班主任工作总结2015
2015/05/13 职场文书