微信小程序多维数组筛选(以二维数组为例)
我们在遇到微信小程序进行筛选的时候,一般会使用到filter函数来进行筛选,但是有时候遇到多维数组怎么办呢?
//例如这是我们的数组
arr: [{
id: 1,
name: 'A',
teachers: [{
course: 'M',
classes: 'J',
}]
},
{
id: 2,
name: 'C',
teachers: [{
course: 'Z',
classes: 'L',
}]
},
{
id: 3,
name: 'E',
teachers: [{
course: 'B',
classes: 'C',
}]
},
],
可能我们会选择使用两次filter函数,可是我们就会发现,怎么筛选结果都是有问题的,所以这会我们就需要forEach函数了。
使用方法如下:
let newArray = []
arr.forEach((now, index) => {
newArray[index] = now
newArray[index].teachers = now.teachers.filter((item) => {
return item.course === twoInput //twoInput你输入的内容进行匹配
})
})
arr = arr.filter((item) => {
return item.teachers != ''
})
- 先用forEach遍历外部数据 ,得到单条数据;
- 再使用filter进行数据匹配 ,如果与你输入内容匹配就会筛选下来;如果没有的话就会被删除,成为一条空数据;
- 最后再使用filter把空的数据那条删掉 ,留下来的就是筛选后的数组。
掌握到这种方法了,其余的多维数组是一样的原理,我们先使用forEach遍历出外层数组,再进行匹配。
如果有问题,欢迎一起讨论,共同进步!初学微信小程序,有问题请指出,谢谢~