微信小程序开发系列(二十一)·wxml语法·setData()修改数组类型数据(增加、修改、删除)

目录

1.  新增数组元素

方法一:push()

方法二:concat()

方法三:ES6中的扩展运算符 ...

2.  修改数组元素

样式一:数字

样式二:元素

3.  删除数组元素

方法一:splice()

方法二:filter()    


        在微信小程序中,setData()方法用于将数据从逻辑层发送到视图层,以实现页面数据的更新和视图的刷新。通过 setData()方法可以更新页面上展示的数据,让用户看到最新的信息。

        当调用 setData()方法时,需要传入一个对象,该对象包含需要更新的数据。例如:

this.setData({key1: value1,key2: value2,// 可以包含多个需要更新的键值对
});

        在这里,key1,key2等表示要更新的属性名,value1,value2分别为对应的属性值。当调用 setData() 后,相关属性的数据会被更新,并触发页面视图的重新渲染,以展示最新的数据。

        如果想清空当前页面所有数据,可以直接在 setData()中不传入任何属性,也就是空对象 {}。这样可以达到清空页面数据的效果:

this.setData({});

        调用 setData({ })会清空当前页面的所有数据,通常在特定场景下需要清空页面数据时会使用这种方式。

         找到index.js文件,在data中创建一个数组:

    // 定义一个数组list: [1,2,3]

        找到cate.wxml文件,显示数组:

<view class="line"></view><view wx:for="{{ list }}" wx:key="index">{{ item }}</view><button type="primary" bind:tap="updateList">修改数组类型数据</button>

        这段代码是一个在微信小程序中使用的模板语法,用于在页面中遍历展示一个列表数据 list 中的每个元素。

wx:for="{{ list }}":这里使用了 wx:for 指令来进行列表渲染,表示要遍历名为 list 的数组数据。在每次迭代中,可以通过 {{ item }} 来访问当前遍历到的元素。

wx:key="index":wx:key 用于指定列表中每个项的唯一标识符,通常使用 index 表示数组索引。这有助于微信小程序快速准确地识别列表中每个项的变化,提高性能并避免出现错误。

<view>{{ item }}</view>:在每次遍历时,会生成一个 <view> 组件用于显示列表中的元素内容,其中 {{ item }} 会被当前遍历到的元素数据替换,从而在页面中动态渲染该数据。

        找到index.js文件,给updateList进行定义:

  // 更新 listupdateList(){}

1.  新增数组元素

方法一:push()

        push()是 JavaScript 中数组对象的一个方法,用于向数组的末尾添加一个或多个元素,并返回修改后数组的新长度。

        push()方法会修改原始数组,将指定的元素添加到数组的末尾,然后返回更新后数组的新长度。如果需要在数组末尾添加多个元素,可以依次传入多个参数。

        这里我们可以采用push进行数组的添加。

        找到cate.js文件:

  // 更新 listupdateList(){// 新增数组元素this.data.list.push(4)}

        我们会发现页面未进行刷新:

        在微信小程序中,直接对 this.data.list 进行修改并不会触发页面的数据更新和视图的刷新。

        因此,我们只需要使用setData()将 this.data.list 的数据赋值给 list 即可:

  // 更新 listupdateList(){// 新增数组元素this.data.list.push(4)this.setData({list: this.data.list})

        点击“修改数组类型数据”按钮:

方法二:concat()

        使用 concat() 方法可以将一个或多个元素连接到数组的末尾,并返回一个新的数组,而不是修改原始数组。

    const newList = this.data.list.concat(4)this.setData({list: newList})

        点击“修改数组类型数据”按钮:

方法三:ES6中的扩展运算符 ...

        ES6 中的扩展运算符 ... 来创建一个新数组newList,其中包含了原始数组 this.data.list 的所有元素以及新元素 4。这种方法不会修改原始数组,而是创建一个新的数组。

    const newList = [ ...this.data.list, 4 ]this.setData({list: newList})

        点击“修改数组类型数据”按钮:

2.  修改数组元素

样式一:数字

        使用了 setData()方法来更新数组 list 中索引为 1 的元素为值 6

    // 修改数组元素this.setData({'list[1]': 6})

        点击“修改数组类型数据”按钮:

样式二:元素

        找到index.js文件,在data中另外创建一个数组:

    com: [{ id:1, name: 'tom'}]

         找到cate.wxml文件,显示数组:

<view>{{  com[0].name }}</view>

        找到index.js文件:

    // 修改数组元素this.setData({// 'list[1]': 6'com[0].name': 'jerry'})

        点击“修改数组类型数据”按钮:

3.  删除数组元素

方法一:splice()

        splice()是 JavaScript 数组对象的方法,用于向数组中添加或删除元素。它可以接受多个参数:

  1. start:指定开始删除或添加元素的位置的索引。
  2. deleteCount:指定要删除的元素个数。如果为 0,则表示不删除元素,只是添加新元素。
  3. item1, item2, ...:可选参数,表示要添加到数组中的新元素。
    // 删除数组元素this.data.list.splice(1,1)this.setData({list: this.data.list})

        点击“修改数组类型数据”按钮:

方法二:filter()    

        filter()是 JavaScript 中数组对象的方法之一,它用于创建一个新数组,其中包含满足指定条件的原始数组中的元素。

        具体来说,filter()方法接受一个回调函数作为参数,该回调函数会被应用于原始数组中的每个元素。回调函数返回一个布尔值,如果返回值为 true,则当前元素将包含在新数组中;如果返回值为false,则当前元素将被过滤掉,不包含在新数组中。

        回调函数通过 item => item !== 2 的箭头函数表示。它会遍历数组 list 中的每个元素,如果当前元素不等于 2,则将其添加到新数组 newList 中。最终,newList 中将仅包含原始数组中不等于 2 的元素。

    // 删除数组元素const newList = this.data.list.filter(item => item !== 2)this.setData({list: newList})

        点击“修改数组类型数据”按钮:

微信小程序开发系列(十九)·wxml语法·setData()修改数据-CSDN博客

微信小程序开发系列(二十)·wxml语法·setData()修改对象类型数据、ES6 提供的展开运算符、delete和rest的用法-CSDN博客

微信小程序开发_时光の尘的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2源码分析-vue入口文件global-api分析

文章背景 vue项目开发过程中,首先会有一个初始化的流程,以及我们会使用到很多全局的api,如 this.$set this.$delete this.$nextTick,以及初始化方法extend,initUse, initMixin , initExtend, initAssetRegisters 等等那它们是怎么实现,让我们一起来探究下吧 源码目录 global-…

Windows下 OracleXE_21 数据库的下载与安装

Oracle 数据库的下载与安装 数据库安装包下载数据库安装访问数据库进行测试Navicat连接数据库 1. 数据库安装包的下载 1.1 下载地址 Oracle Database Express Edition | Oracle 中国 1.2 点击“下载 Oracle Database XE”按钮&#xff0c;进去到下载页面&#xff08;选择对…

Stable diffusion零基础课程

该课程专为零基础学习者设计&#xff0c;旨在介绍和解释稳定扩散的基本概念。学员将通过简单易懂的方式了解扩散现象、数学模型及其应用&#xff0c;为日后更深入的科学研究和工程应用打下坚实基础。 课程大小&#xff1a;3.8G 课程下载&#xff1a;https://download.csdn.ne…

灵魂指针,教给(一)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 一、内存和地址 1.1 内存 在介绍知识之前&#xff0c;先来想一个生活中的小栗子&#xff1a; 假如把你放在一个有100间屋子的酒店…

第三讲 汇编初步 课程随手记

一、寄存器 32位CPU通用寄存器如下图所示&#xff1a; 因为教材依照的是32位CPU寄存器&#xff0c;而我安装的是64位寄存器&#xff0c;所以找了一下64位的寄存器的资料 PS&#xff1a;一般来说&#xff0c;Intel处理器字节存储顺序为小端法存储&#xff0c;是指数据的高字节保…

基于Skywalking开发分布式监控(四)一个案例

上一篇我们简单介绍了基于SkyWalking自定义增强的基本架构&#xff0c;即通过把Trace数据导入数据加工模块进行加工&#xff0c;进行持久化&#xff0c;并赋能grafana展示。 现在我们给出一个例子&#xff0c;对于量化交易系统&#xff0c;市场交易订单提交&#xff0c;该订单…

关于springboot一个接口请求后,主动取消后,后端是否还在跑

1、最近在思考一个问题&#xff0c;如果一个springboot的请求的接口比较耗时&#xff0c;中途中断该请求后&#xff0c;则后端服务是否会终止该线程的处理&#xff0c;于是写了一个demo RequestMapping(value "/test", method RequestMethod.GET)public BasicResul…

云消息队列 Confluent 版正式上线!

作者&#xff1a;阿里云消息队列 前言 在 2023 年杭州云栖大会上&#xff0c;Confluent 成为阿里云技术合作伙伴&#xff0c;在此基础上&#xff0c;双方展开了深度合作&#xff0c;并在今天&#xff08;3月1日&#xff09;正式上线“云消息队列 Confluent 版”。 通过将 Co…

android基础学习

从上面的描述就可以知道&#xff0c;每一个Activity组件都有一个对应的ViewRoot对象、View对象以及WindowManager.LayoutParams对象。这三个对象的对应关系是由WindowManagerImpl类来维护的。具体来说&#xff0c;就是由WindowManagerImpl类的成员变量mRoots、mViews和mParams所…

【Apache Camel】基础知识

【Apache Camel】基础知识 Apache Camel是什么Apache Camel基本概念和术语CamelContextEndpointsRoutesRouteBuilderComponentsMessageExchangeProcessorsDomain Specific Language&#xff08;DSL&#xff09; Apache Camel 应用执行步骤Apache Camel 示意图参考 Apache Camel…

学习Java的第一天

一、Java简介 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发&#xff0c;并在 1995 年正式推出。 后来 Sun 公司被 Oracle &#xff08;甲骨文&#xff09;公司收购&#xff0c;Jav…

【AAAI2023】基于神经跨度的持续命名实体识别模型

论文标题&#xff1a;A Neural Span-Based Continual Named Entity Recognition Model 论文链接&#xff1a;https://arxiv.org/abs/2302.12200 代码&#xff1a;https://github.com/Qznan/SpanKL inproceedings{zhang2023spankl,title{A Neural Span-Based Continual Named En…

ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效

随着Open AI公司推出的Sora文生视频模型惊艳亮相互联网&#xff0c;AI语音克隆创企ElevenLabs又为Sora的演示视频生成了配音&#xff0c;所有的音效均由AI创造&#xff0c;与视频内容完美融合。 ElevenLabs的语音克隆技术能够从一分钟的音频样本中创建逼真的声音。为了实现这一…

RPC——远程过程调用

一、RPC介绍 1.1 概述 RPC&#xff08;Remote Procedure Call Protocol&#xff09; 远程过程调用协议。RPC是一种通过网络从远程计算机程序上请求服务&#xff0c;不需要了解底层网络技术的协议。RPC主要作用就是不同的服务间方法调用就像本地调用一样便捷。 1.2 RPC框架 …

QT----在编译器里能够连接云端数据库,使用windeployqt打包后运行程序,链接不上云端mysql数据库

问题描述 在编译器里能够连接云端数据库&#xff0c;使用windeployqt打包后运行程序&#xff0c;链接不上云端mysql数据库&#xff0c;困扰了好几天 打包发布手机上的app还是无法连接 问题解决 打包的时候没有将这个文件放入&#xff0c;我们复制放到exe的目录即可

redis原理深入解析之看完这篇还需要努力

数据结构 动态字符串SDS struct __attribute__ ((__packed__)) sdshdr8 {uint8_t len; /*已保存的字节数 不含结束标识 header*/uint8_t alloc; /*申请总的字节数&#xff0c;不含结束标识 header*/unsigned char flags;/*不同sds头类型&#xff0c;控制sds头大小 header*/…

【AI视野·今日Robot 机器人论文速览 第八十二期】Tue, 5 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 5 Mar 2024 Totally 63 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;双臂机器人拧瓶盖, (from 伯克利) website: https://toruowo.github.io/bimanual-twist &#x1f4da;水下抓取器, (from …

Dynamo初学尝试梳理(五)-代码块上

“学而时习之&#xff0c;不亦说乎”&#xff0c;今天接着来&#xff0c;稍微提高点难度&#xff08;高手直接忽略就行&#xff09;。 代码块&#xff08;Code Block&#xff09;&#xff0c;是 dynamo 中可以直接输入 DesignScript 的节点。可以通过双击鼠标左键&#xff0c;快…

程序员书单推荐:从入门到精通的必读之作

在程序员的职业生涯中&#xff0c;阅读技术书籍是不断学习和提升自我的重要途径。本文将为你推荐一系列从入门到精通的程序员书单&#xff0c;帮助你系统地掌握编程知识、提高技能水平&#xff0c;并在职业生涯中取得更大的进步。 一、入门篇 《Head First C语言》&#xff1…

基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(一)

Vue.js 是一个流行的前端框架&#xff0c;用于构建用户界面和单页应用程序。Vue 2 是其第二个主要版本&#xff0c;它提供了数据绑定、组件化、虚拟DOM等核心特性。要搭建一个 Vue 2 的工程化项目&#xff0c;可以遵循以下步骤&#xff1a; 一、前端环境搭建 &#xff08;一&a…