前言

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

数组操作

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

相信对于用过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的添加新的数据里,需要用到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:{}

});

}

总结

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

PHP数组操作程序,微信小程序学习数组操作相关推荐

  1. 微信小程序之Array操作、图片上传

    一.Array操作 1,渲染 Array 对象数组多用于列表渲染,对于列表中的数据,能够进行十分便捷有效的存储. .wxml<view class='clazz-item' bindtap='s ...

  2. 微信小程序js数组初始化_微信小程序学习Course 3-2 JS数组对象学习

    微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = ...

  3. 微信小程序给数组、对象赋值

    微信小程序给数组.对象赋值 给定义的对象赋值://公司名称getCompanyNmae(e: any) {this.setData!({'where.companyName': e.detail.va ...

  4. 微信小程序判断数组是否为空

    微信小程序判断数组是否为空 var array = [] if (array.length == 0) { console.log( '数组为空' ) } else {console.log('数组不 ...

  5. 微信小程序学习Course 8 本地缓存API

    微信小程序学习Course 8 本地缓存API 本篇随笔主要介绍微信小程序本地缓存API函数,微信小程序可以在本地缓存一些关键词数据,每一条关键词对应一段字符串.微信小程序提供了以下API函数. 8. ...

  6. 微信小程序学习笔记(1)

    微信小程序学习笔记 1.小程序代码结构 2.逻辑层和视图层 3. 小程序的宿主环境(通信模型.运行机制.组件.API) 4. 数据绑定和事件绑定 1.小程序代码结构 当开发者新建一个工程时,项目文件包 ...

  7. 微信小程序学习(1)-基础开发

    学习微信小程序 微信小程序学习(1) 微信小程序学习(2) 文章目录 学习微信小程序 注册和初始化 小程序配置 tabbar导航栏 模板插样与WXML 循环渲染 条件渲染 模板 微信小程序脚本WXS ...

  8. 微信小程序学习(加深)

    微信小程序学习(加深) 一.wx:if 与 hidden 的对比 wx:if 以动态创建和移除元素的方式,控制元素的展示与隐藏 hidden 以切换样式的方式(display: none/block; ...

  9. 微信小程序学习实录1(wxml文档、引入weui、双向数据绑定、提交表单到后端)

    微信小程序学习实录 一.wxml文档 二.新建页面快捷方式 三.微信小程序引入weui 四.双向数据绑定 1.wxml渲染层 2.js逻辑层 提交表单到后端 五.微信小程序跳转到H5 一.wxml文档 ...

最新文章

  1. 融合libevent和protobuf
  2. 深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现...
  3. 转发程序无法决定链接类型
  4. argparse模块---解析命令行参数
  5. Windows下Java调用BAT批处理不弹出cmd窗口
  6. 如何让地面不起灰_地面不平能铺地板吗?木地板不平怎么修复
  7. 以太坊 node data write error_那个坚持写了四年《每周以太坊》的劳模分享关于以太坊的最新看法...
  8. 2022尚硅谷docker学习笔记
  9. c语言顺序比较法字符,常用C语言排序算法解析
  10. globalThis is not defined 解决方案
  11. 【AutoHotkey】笔记本键盘没有Home键和End键的解决方案
  12. 渗透之——Win10完美去除桌面快捷图标小箭头
  13. 你还在找音乐网站吗?试试这几个吧
  14. Anaconda下载及安装保姆级教程(详细图文)
  15. 华为ENSP网络设备配置实战2(较为复杂的ospf)
  16. HuaWei ❉ IPv4基本原理
  17. Windows下如何启动Redis服务?
  18. excel的常用函数
  19. R语言用GAM广义相加模型研究公交专用道对行程时间变异度数据的影响
  20. 掌握并理解 CORS (跨域资源共享)

热门文章

  1. 电力系统中的存储建设
  2. 计算机在会计专业的作用论文开题报告,会计专业毕业论文开题报告范文
  3. 二叉查找树(一)之 图文解析 和 C语言的实现
  4. 恐怖游戏需要优秀的剧情吗?聊聊《港诡实录》的剧情架构
  5. c++如何判断质数/合数
  6. com.aspose.cells使用ICustomFunction自定义函数
  7. 手杀主页劫持流氓软件
  8. latex如何自定义图片的标题位置
  9. linux中dnf实用命令简记
  10. vue+element el-dialog弹出框会变暗解决办法