2021-08-05

这篇博客详细介绍了在小程序环境中对数组的各种操作,包括通过index修改对象属性、使用map、findIndex、indexOf和find等方法进行查找和更新,以及运用every、some和filter进行条件筛选。此外,还讲解了数组的增删改查操作,字符串与数组的转换,以及处理JSON数据的编码解码策略。内容涵盖了数据处理的核心技巧,对于小程序开发人员极具参考价值。
摘要由CSDN通过智能技术生成

关于数组的一些操作

小程序更改数组对象中的某个值(index方便得到的情况)
let index=e.currentTarget.dataset.index //找到这个对象在数组中的位置
let sfylq = couponList[${index}].sfylq //找到要更改的对象
ta.setData({
[sfylq]:1,//进行赋值
})

index值不能直接得到 用map()方法进行遍历
let arr=topCouponList.map((e,i)=>{
if(e.id==id){
e.sfylq=1
}
return e
})
ta.setData({
[sfylq]:1,
topCouponList:arr
})

使用findIndex()
let index = this.userList.findIndex(item => item.name === name);

不包含对象的数组就用indexOf
let pos=[1,2,3].indexOf(2) //寻找2在数组中的索引 返回1

使用find方法
let result=a.find((item,index)=>{ //当result为空就会报错
return item.id==2
})

使用includes,只针对不包含对象的数组
let pos=[1,2,3].includes(2) 返回true

every和some方法 ,
// 判断数组arr1是否全是偶数
// 判断数组arr2是否至少有一个偶数
var arr1=[1, 2, 3, 4, 5];
var arr2=[1, 4, 6, 8, 10];
console.log(
arr1.every((value,index,array)=>{
return value % 2 == 0;
})
); // false
console.log(
arr2.some((value,index,array)=>{
return value % 2 == 0;
})
); //true

filter方法,筛选符合条件的
//数组去重
var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 0, 8, 6, 3, 4, 56, 2];
var arr2 = arr.filter((x, index,self)=>self.indexOf(x) === index)
console.log(arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 0, 56]

数组的增删改查

push()添加到数组末尾,unshift()添加至数组前端,这2个都是返回数组长度
concat()返回新数组
splice()可以向数组指定位置添加任意数量的元素,需要传入至少3个参数: 起始位置、0(要删除的元素个数)和要添加的元素。

pop()删除最后一项,返回改项
shift()删除第一项,返回改项
slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
splice()传入两个参数,第1个参数用于指定要删除的第一项的位置,第2个参数用于指定要删除元素的个数。

splice()传入三个参数,第一个是开始的下标,第二个是要删除的个数,不删除为0,第三个为要增加的数组。

indexOf()和lastIndexOf()
这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()从数组的开头(位置0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。没找到的返回-1

字符串和数组的相互转化
数组转字符串 arr.join()
字符串分割成数组 arr.split("-");//从’-’ 开始分割

由于小程序的JSON.JSON.stringify()传递数据过长报错,就用编码和解码
let bianshuju= encodeURIComponent(JSON.stringify(list))
let jieshuju= JSON.parse(decodeURIComponent(bianshuju))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值