资讯专栏INFORMATION COLUMN

数组操作--微信小程序学习教程

xingpingz / 3590人阅读

摘要:修改数组这个参数的具体作用,请参考微信小程序官方提供的说明,地址为在通过在页面里使用传递过来的,是为识别正在编辑修改哪个数组。我们也会不定期发布一些微信小程序的学习教程。

前言

</>复制代码

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

数组操作

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

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

demo地址:
https://github.com/bluefox168...

demo数组操作的例子路径:
/pages/array/array.wxml

向前向后插入新的数据

</>复制代码

  1. Page({
  2. data: {
  3. list:[{
  4. id:1,
  5. name:"应季鲜果",
  6. count:1
  7. },{
  8. id:2,
  9. name:"精致糕点",
  10. count:6
  11. },{
  12. id:3,
  13. name:"全球美食烘培原料",
  14. count:12
  15. },{
  16. id:4,
  17. name:"无辣不欢生猛海鲜",
  18. count:5
  19. }]
  20. }
  21. })

我们初始化一些数据,我们需要对list的添加新的数据里,需要用到JavaScript concat()的方法,concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组。
其实我们的所说的向前向后插入数据,其实也就是把两个数组合拼起来,组成一个新的数组,然后再使用this.setData()即可渲染到页面上。
我们看一下在微信小程序里的代码。

向前插入数据demo

</>复制代码

  1. //向前增加数据
  2. add_before:function (){
  3. //要增加的数组
  4. var newarray = [{
  5. id:6,
  6. name:"向前增加数据--"+new Date().getTime() ,
  7. count:89
  8. }];
  9. //使用concat()来把两个数组合拼起来
  10. this.data.list = newarray.concat(this.data.list);
  11. //将合拼之后的数据,发送到视图层,即渲染页面
  12. //大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。
  13. this.setData({
  14. "list": this.data.list
  15. });
  16. }

向后插入数据demo

</>复制代码

  1. //向后增加数据
  2. add_after:function (){
  3. //要增加的数组
  4. var newarray = [{
  5. id:5,
  6. name:"向后增加数据--"+new Date().getTime() ,
  7. count:89
  8. }];
  9. this.setData({
  10. "list":this.data.list.concat(newarray)
  11. });
  12. },

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

</>复制代码

  1. //假设这一段是我们要新增的数组
  2. var newarray = [{
  3. id:5,
  4. name:"向后增加数据--"+new Date().getTime() ,
  5. count:89
  6. }];
  7. //向前--用newarray与this.data.list合拼
  8. this.data.list = newarray.concat(this.data.list);
  9. //向后--用this.data.list与newarray合拼
  10. this.data.list = this.data.list.concat(newarray);
修改数组

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

</>复制代码

  1. //修改数组
  2. edit:function (e){
  3. //这个参数“e”的具体作用,请参考微信小程序官方提供的说明,地址为https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html?t=20161107
  4. var dataset = e.target.dataset;
  5. var Index = dataset.index; //在通过在wxml页面里使用 data-index="{{index}}"传递过来的,是为识别正在编辑修改哪个数组。
  6. //我们要修改的数组
  7. this.data.list[Index].name = "修改了内容"+new Date().getTime();
  8. //将合拼之后的数据,发送到视图层,即渲染页面
  9. //大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。
  10. this.setData({
  11. list:this.data.list
  12. });
  13. }
删除某条数据

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

</>复制代码

  1. //删除
  2. remove:function (e){
  3. var dataset = e.target.dataset;
  4. var Index = dataset.index;
  5. //通过`index`识别要删除第几条数据,第二个数据为要删除的项目数量,通常为1
  6. this.data.list.splice(Index,1);
  7. //渲染数据
  8. this.setData({
  9. list:this.data.list
  10. });
  11. }
清空数据

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

</>复制代码

  1. //清空
  2. clear:function (){
  3. //其实就是让数组变成一个空数组即可
  4. this.setData({
  5. list:{}
  6. });
  7. }
总结

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

具体的每一个的操作方法,可以去国内的w3s多学习下。
http://www.w3school.com.cn/js...

demo地址:
https://github.com/bluefox168...

交流

最近大家对微信小程序开发热情大涨,结识了不少对微信小程序技术开发的牛人,也有一些刚入行的新手,特此我建立了一个微信小程序技术交流圈子,希望给大伙有一个纯洁的技术交流圈子,技术交流,提升自我。我们也会不定期发布一些微信小程序的学习教程。
此群的目标为纯(干)纯(货)的技术交流群,不死于广告之中,已开启了群主邀请确认机制,需要入群的小伙伴,请加我的个人微信amwhuang。(备注:小程序入群)

</>复制代码

  1. 文章首发地址:
    数组操作--微信小程序学习教程
    http://lanchenglv.com/article...
    如需转载,请标明转载出处,谢谢。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/50233.html

相关文章

  • 数组操作--信小程序学习教程

    摘要:修改数组这个参数的具体作用,请参考微信小程序官方提供的说明,地址为在通过在页面里使用传递过来的,是为识别正在编辑修改哪个数组。我们也会不定期发布一些微信小程序的学习教程。 前言 相信在小程序推出公测之后,很多小伙伴都已经抓紧申请注册小程序了。在开发阶段中也碰到了很多的问题,例如wx.request数据请求不成功,在数组操作时,不知道如何往数组里push数据,input如何监听用户输入的...

    stdying 评论0 收藏0
  • 信小程序入门教程--列表渲染多层嵌套循环及wx:key的使用

    摘要:前言入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉。我们也会不定期发布一些微信小程序的学习教程。需要入群的小伙伴,请加我的个人微信。 前言 入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉。 {{index}}: {...

    tracy 评论0 收藏0
  • 信小程序入门教程--列表渲染多层嵌套循环及wx:key的使用

    摘要:前言入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉。我们也会不定期发布一些微信小程序的学习教程。需要入群的小伙伴,请加我的个人微信。 前言 入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉。 {{index}}: {...

    Luosunce 评论0 收藏0

发表评论

0条评论

xingpingz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<