来源: 微信小程序数组操作find,filter查找特定值 – 掘金
写小程序的时候用到过一个方法,js.find()和js.filter(),他们的用途都是过滤筛选出符合我们特定值的数据。但两者的用法也有些区别。
首先我们来看一下js.find()使用方法。代码含义是指从getGameListData.data.data.这个数组中筛选出和this.data.searchInfo的值相等的第一项。注意是他只能筛选出一个,返回值是字符串,如果没有则是undefined。
需要注意的点:
find() 对于空数组,函数是不会执行的。
find() 并没有改变数组的原始值。
find() 只能筛选出符合条件的第一项
// 定义一个需要被查找的数组
var memoList = [{ id: 1, name: '1'},
{id: 2, name: '2'},
{id: 3, name: '3'}]
// 用 editItem 变量将 查找出来的数据进行接收`
var` `editItem = memoList.find((ele) => {
return ele.id == 2
})
// 打印 editItem 得到的结果是 {id: 2, name: '2'}
复制代码
let test = [1, 2, 3, 4, 5];
let a = test.find(item => item > 3);
console.log(a); //4
let b = test.find(item => item == 0);
console.log(b); //undefined
复制代码
下面是在小程序中写的代码
let game = getGameListData.data.data.find(item=>{
return item.gamename.indexOf(this.data.searchInfo) !==-1
})
复制代码
然后再来看看filter。代码含义是指从searchInputInfo中筛选出所有和searchInfo相等的数据。其返回值也是一个数组。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
var arr = ['A', 'B', 'C'];\
var r = arr.filter(function (element, index, self) {undefined\
console.log(element); // 依次打印'A', 'B', 'C'\
console.log(index); // 依次打印0, 1, 2\
console.log(self); // self就是变量arr\
return true;\
});
复制代码
下面是在小程序中写的代码
let filterNum = searchInputInfo.filter(item=>{
return item.name.indexOf(searchInfo) !==-1
})
复制代码
那么我们再来看看如何通过map遍历来拿到我们需要的值吧,该函数调用时,map方法向它传入三个参数:当前值、当前位置和数组本身。
var a=11,
arr=[11,22,33]
arr.map(function(elem,index,array){
if(elem==a){
console.log(elem);
}
})
复制代码
很简单,方法也有很多种。好啦,明天再来讲一下微信小程序如何调取支付接口。
作者:谁都别管
链接:https://juejin.cn/post/7062965728386744328
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://juejin.cn/post/7062965728386744328
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。