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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
javascript eval和JSON之间的联系
Dec 31 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 Javascript
jQuery实现ichat在线客服插件
Dec 29 Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 Javascript
javascript防篡改对象实例详解
Apr 10 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
elementUI select组件默认选中效果实现的方法
Mar 25 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 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中for与foreach的区别分析
2011/03/09 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
JavaScript实现连连看连线算法
2019/01/05 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
Python发送Email方法实例
2014/08/21 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
python实现人机五子棋
2020/03/25 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
python软件都是免费的吗
2020/06/18 Python
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
母亲80寿诞答谢词
2014/01/16 职场文书
教师开学感言
2014/02/14 职场文书
运动会800米加油稿
2014/02/22 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
银行授权委托书样本
2014/10/13 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
初中语文教学反思范文
2016/03/03 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS