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}]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。