filter()
- 创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素(不会改变原数组)
// 原始数据
orginArr:[ { name: 1 }, { name: 2 }, { name: 3 }, { name: 3 } ]
filterArr:[]
// 使用filter改变filterArr
// this.filterArr = this.orginArr.filter(item=>item.name < 3) // 两种写法
this.filterArr = this.orginArr.filter(item=>{return item.name > 1})
// 改变后数据
orginArr: [ { name: 1 }, { name: 2 }, { name: 3 }, { name: 3 } ] // 不改变原数组
filterArr: [ { name: 2 }, { name: 3 }, { name: 3 } ]
new Map()
// 原始数据
mapArr:[]
// new Map()赋值
let arrMap = new Map()
let obj = {x:1}
arrMap.set(1,"black")
arrMap.set(2,"pink")
arrMap.set("color",2)
arrMap.set(obj,3)
this.mapArr = arrMap
// 改变后数据
mapArr: [ [ 1, "black" ], [ 2, "pink" ], [ "color", 2 ], [ { "x": 1 }, 3 ] ]
利用filter()和new Map() 删除数组中指定字段重复的数据
// 原始数据
orginArr:[
{ name: 1, typeName: "apple" },
{ name: 2, typeName: "banana" },
{ name: 3, typeName: "apple" },
{ name: 3, typeName: "peach" }
],
mapFilterArr: null
// 筛选-去除重复的typeName的整条数据
let mapEx = new Map()
this.mapFilterArr = this.mFOriginArr.filter(item=>{
// 检查是否存在该键值,若不存在则赋值,并返回true,加入到新创建的数组;若已存在,返回false
return !mapEx.has(item.typeName) && mapEx.set(item.typeName,1)
})
// 改变后数据
orginArr:[
{ name: 1, typeName: "apple" },
{ name: 2, typeName: "banana" },
{ name: 3, typeName: "apple" },
{ name: 3, typeName: "peach" }
],
mapFilterArr: [
{ name: 1, typeName: "apple" },
{ name: 2, typeName: "banana" },
{ name: 3, typeName: "peach" }
]