微信小程序前端筛选功能 【小程序js数组过滤、筛选】

微信   2024-12-24 10:18   127   0  

单条件多数据筛选:1、数据量大的情况,通常都调用的后台接品。2、数据量不大的情况,可以一次性拿到所有数据,然后根据条件筛选。3、多条件复合筛选,数组的filter方法就能够满足需求。

一、单数组示例:

var str =[1,2,3,4,5,6,7,8,9]

var result = str.filter(item=> item.<6)

console.log(result)

输出结果:[1,2,3,4,5]


二、二维数组示列:

var aim = [

{id:1,name:'小二', age: 20,status:0},

{id:2,name:'小三', age: 21,status:0},

{id:3,name:'小四', age: 22,status:0},

{id:4,name:'小五', age: 23,status:1}

]

var result = aim.filter(item=> item.id<3)

console.log(result)

输出结果

0: {id: 1, name: "小二"}

1: {id: 2, name: "小三"}


三、筛选需求:

1、数据量大的情况,通常都调用的后台接品。

2、数据量不大的情况,可以一次性拿到所有数据,然后根据条件筛选。

3、多条件复合筛选,数组的filter方法就能够满足需求

// 这个是例子中的被筛选数组

var aim = [

{id:1,name:'小二', age: 20,status:0},

{id:2,name:'小三', age: 21,status:0},

{id:3,name:'小四', age: 22,status:0},

{id:4,name:'小五', age: 23,status:1}

]

单条件单数据筛选:用filter方法,判断 status =1即可

function filterByName(aim) {

return aim.filter(item => item.status == 1)

}

输出[{id:4,name:'小五', age: 23,status:1}]


单条件多数据筛选:根据多个名字筛选,这里是用for循环遍历目标数组,然后用find方法找到后push到结果数组里,用find方法是重名情况下也能得到想要的结果。for循环可以用数组的一些遍历方法替代,代码可以更简化,示例就是大概表达个意思。【根据多个名字筛选】

function filterByName1(aim, nameArr) {

let result = []

for(let i = 0; i < nameArr.length; i++) {

result.push(aim.find(item => item.name = nameArr[i]))

}

return result

}

console.log(filterByName1(aim,['小三','小四']))

//输出结堁:[{id:2,name:'小三', age: 21,status:0},{id:3,name:'小四', age: 22,status:0},]


多条件单数据筛选:根据单个名字或者单个年龄筛选,用filter方法,判断条件之间是或的关系。【根据年龄和数据状态status筛选】

function filterByName2(aim, age) {

return aim.filter(item => item.age > 21 || item.status == 1)

}

输出结果:{id:4,name:'小五', age: 23,status:1}


原文:https://www.jianshu.com/p/01d1a0307dea


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。