vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue filter使用及根据id删除数组元素

Vue中filter使用及根据id删除数组元素方式

作者:小破孩呦

这篇文章主要介绍了Vue中filter使用及根据id删除数组元素方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue使用filter及根据id删除数组元素

先在methods下写一个filter过滤的方法

unique(arr) { // 根据唯一标识orderId来对数组进行过滤
        console.log(arr);
        const res = new Map();  //定义常量 res,值为一个Map对象实例
        //返回arr数组过滤后的结果,结果为一个数组   过滤条件是,如果res中没有某个键,就设置这个键的值为1
        return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1))
},

使用过滤方法

this.list = this.unique(this.list);

根据id删除数组元素

del(id){
        //ES6
        //根据id查找元素 findIndex
        //let index = arr.findIndex(function(ele,index,arr){return ele.id==id})
        //函数内如果返回true,就结束遍历并返回当前index;
        //index如果没有找到返回-1
        let index = this.list.findIndex((ele) =>{
          return ele.id === id;
        });
        //假设没有找到
        console.log(index);
        if(index === -1){
          return console.log('删除失败');
        }
        //删除元素
        this.list.splice(index,1);
        console.log(this.list)
}

vue中filter()函数的用法

filter函数基本格式:

let newArr=this.list.filter(item=>item.id!==val)

首先在这里我们要知道的两个基础知识

一、filter是一个过滤器。

二、箭头函数filter(item=>item.id!==val)相当于filter(item){item.code!==val}

其中list是数组,this.list.filter()是指在list数组中,过滤掉item.id!==val条件的数组项,newArr代表得到条件为item.id不等于val的时候的数组,相当于数组中删除了item.id为val的项。

//举例
//定义一个数组,有3条数据
 list = [
  {
    id: 1,
    name: '吃饭',
    done: true
  },
  {
    id: 2,
    name: '睡觉',
    done: false
  },
  {
    id: 3,
    name: '打豆豆',
    done: false
  }
]
//删除id为2的数组项,得到新的数组
let newArr = this.list.filter(item=>item.id!==2);  //[{id: 1,name: '吃饭',done: true},{id: 3,name: '打豆豆',done: false}]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文