数组操作--增、删、改、查

相信对于用过vuejs、reactjs等mvvm框架的童鞋,微信小程序的数组操作就显得很简单啦,原理是一样的。

这是简单做的一个demo,已经上传到github,到时大伙可以直接下载。我们主要讲在数组中常用的一些操作方法,对数组向前向后插入新的数据、修改数组、删除数组、清空数组,其他的一些操作方式,我会给大伙学习思路。

demo数组操作的例子路径:

/pages/array/array.wxml

向前向后插入新的数据

Page({
 data: {
 list:[{
 id:1,
 name:'应季鲜果',
 count:1
 },{
 id:2,
 name:'精致糕点',
 count:6
 },{
 id:3,
 name:'全球美食烘培原料',
 count:12
 },{
 id:4,
 name:'无辣不欢生猛海鲜',
 count:5
 }]
 }
})

我们初始化一些数据,我们需要对list的添加新的数据里,需要用到 JavaScript concat() 的方法, concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组。

其实我们的所说的向前向后插入数据,其实也就是把两个数组合拼起来,组成一个新的数组,然后再使用 this.setData() 即可渲染到页面上。

我们看一下在微信小程序里的代码。

向前插入数据demo
 //向前增加数据
 add_before:function (){


//要增加的数组
var newarray = [{
 id:6,
 name:'向前增加数据--'+new Date().getTime() ,
 count:89
}];

//使用concat()来把两个数组合拼起来
this.data.list = newarray.concat(this.data.list);

//将合拼之后的数据,发送到视图层,即渲染页面
//大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。
this.setData({
 'list': this.data.list
 });


 }
向后插入数据demo
 //向后增加数据
 add_after:function (){

//要增加的数组
var newarray = [{
 id:5,
 name:'向后增加数据--'+new Date().getTime() ,
 count:89
}];


this.setData({
 'list':this.data.list.concat(newarray)
});


 },

细心的小伙伴应该会发现,这两段在用 concat() 合拼数据时,concat括号里的数据是不一样的。向前向后插入数据的区别就在这里了。

//假设这一段是我们要新增的数组
var newarray = [{
 id:5,
 name:'向后增加数据--'+new Date().getTime() ,
 count:89
}];

//向前--用newarray与this.data.list合拼
this.data.list = newarray.concat(this.data.list);

//向后--用this.data.list与newarray合拼
this.data.list = this.data.list.concat(newarray);

修改数组

对展示的数据进行修改,在开发过程是常见得不在常见的事情啦。

 //修改数组
 edit:function (e){

//这个参数“e”的具体作用,请参考微信小程序官方提供的说明,地址为https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html?t=20161107

var dataset = e.target.dataset;
var Index = dataset.index; //在通过在wxml页面里使用 data-index="{{index}}"传递过来的,是为识别正在编辑修改哪个数组。

//我们要修改的数组
this.data.list[Index].name = '修改了内容'+new Date().getTime();

//将合拼之后的数据,发送到视图层,即渲染页面
//大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。
this.setData({
 list:this.data.list
});



 }

删除某条数据

有增有改也必有删。

删除需要用到 JavaScript splice() 方式, splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

//删除
 remove:function (e){

 var dataset = e.target.dataset;
 var Index = dataset.index;

 //通过`index`识别要删除第几条数据,第二个数据为要删除的项目数量,通常为1
 this.data.list.splice(Index,1);

 //渲染数据
 this.setData({
 list:this.data.list
 });


 }

清空数据

增修删之后,还得再来一个清空数据呀。

//清空
 clear:function (){

 //其实就是让数组变成一个空数组即可
 this.setData({
 list:{}
 });

 }

总结

今天我们主要讲了增修删清空,其实对数组的操作还有很多方式的,可以看以下截图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值