PHP数组操作程序,微信小程序学习数组操作

前言

相信在小程序推出公测之后,很多小伙伴都已经抓紧申请注册小程序了。在开发阶段中也碰到了很多的问题,例如wx.request数据请求不成功,在数组操作时,不知道如何往数组里push数据,input如何监听用户输入的状态,css的background-image无法获取本地资源等等,本博客会出一个专题,给碰到这些问题的小伙伴解决思路。

数组操作

今天我们主要讲的是,数组操作。

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

fc0fce9b8d47ab2e0ee871307554496d.png

eb84c27b366de62b2d34ca4101dc0374.png

这是简单做的一个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的添加新的数据里,需要用到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:{}

});

}

总结

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

8b2aa46fc5a60666291e797c83c0251d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值