小程序原生-利用setData()对不同类型的数据进行增删改
1. 声明和绑定数据
wxml文件
<view> {{school}} </view>
<view>{{obj.name}}</view>
<view id="{{id}}" > 绑定属性值 </view>
<checkbox checked="{{isChecked}}"/>
<!--算数运算-->
<view>{{ id + 1 }}</view>
<!--三元运算-->
<view>{{id===1 ? "等于":"不等于"}}</view>
<!--逻辑判断-->
<view>{{id===1}}</view>
<!--注意:在{{}}语法中,只能写表达式,不能写语句和调用JS方法-->
JS文件
Page({data: {school: "西安交通大学",obj: {name: "wwww"},id: 12,isChecked: true},
})

2. setData()修改数据
在小程序中修改数据不推荐使用赋值的方式进行修改,因为无法改变页面的数据。正确的方式应该是通过调用setData()方法来进行修改。

3. setData()修改对象类型的数据
3.1 属性新增
<view> {{userinfo.id}} </view>
<view> {{userinfo.name}} </view>
<button bind:tap="updateUserInfo">修改数据</button>
// pages/test/test.js
Page({data: {userinfo:{}},updateUserInfo(){console.log(this.data.userinfo);//新增单个/多个属性this.setData({'userinfo.name':'tom','userinfo.id':1,})}
})

3.2 属性值的修改
// pages/test/test.js
Page({data: {userinfo:{name:'',id:''}},updateUserInfo(){this.setData({'userinfo.name':'tom','userinfo.id':1,})}
})
3.3 实现多属性操作
采用ES6展开运算符方式处理
// pages/test/test.js
Page({data: {userinfo:{name:'',id:''}},updateUserInfo(){//复制this.data.userinfo的值到userinfo//后面加的字段会自动覆盖前面对象里面的属性值const userinfo ={... this.data.userinfo,name:"jerry",id:18}this.setData({//将上面的userinfothis.data.userinfo//赋值到键和值如果一样的话,可以简写如下userinfo})}
})

采用Object.assign()方式处理
Object.assign()将多个对象合并成一个对象,从后往前合并,以后面的为准。
// pages/test/test.js
Page({data: {userinfo:{name:'',id:''}},updateUserInfo(){const userinfo = Object.assign(this.data.userinfo,{name:'jerry'},{id:18})this.setData({//将上面的userinfothis.data.userinfo//赋值到键和值如果一样的话,可以简写如下userinfo})}
})
3.4 删除单个属性
// pages/test/test.js
Page({data: {userinfo: {name: 'tom',id: '1'}},updateUserInfo() {delete this.data.userinfo.idthis.setData({userinfo: this.data.userinfo})}
})

3.5 删除多个属性
// pages/test/test.js
Page({data: {userinfo: {name: 'tom',id: '1'}},updateUserInfo() {//删除多个属性 rest 剩余参数//将userinfo解构到name,id,rest中,也就是rest里面没有name,id,再将其赋给userinfo,自然没有name,idconst {name,id,...rest} = this.data.userinfothis.setData({userinfo: rest})}
})

4. setData()修改数组数据
4.1 新增数组元素
<view wx:for="{{list}}" wx:key="index" > {{item}} </view><button bind:tap="updateList">修改数据</button>
// pages/test/test.js
Page({data: {list:[1,2,3,4,5]},updateList() {//新增数组元素,不能直接使用push方法,因为不能更新页面数据,必须要结合setData方法this.data.list.push(10)this.setData({list: this.data.list})}
})

// pages/test/test.js
Page({data: {list:[1,2,3,4,5]},updateList() {//方式1:新增数组元素,不能直接使用push方法,因为不能更新页面数据,必须要结合setData方法// this.data.list.push(10)//方式2: 利用concat方法const newlist = this.data.list.concat(10);this.setData({list: newlist})}
})

// pages/test/test.js
Page({data: {list:[1,2,3,4,5]},updateList() {//方式1:新增数组元素,不能直接使用push方法,因为不能更新页面数据,必须要结合setData方法// this.data.list.push(10)//方式2: 利用concat方法// const newlist = this.data.list.concat(10);//方式3:利用ES6的展开运算符const newlist = [...this.data.list,10]this.setData({list: newlist})}
})

4.2 修改数组元素
<view> {{list[0].name}} </view><button bind:tap="updateList">修改数据</button>
// pages/test/test.js
Page({data: {list:[{'name':'tom','age':17}]},updateList() {this.setData({'list[0].name': 'wuk'})}
})

4.3 数组元素删除
<view wx:for="{{list}}" wx:key="index" > {{item}} </view>
<button bind:tap="updateList">修改数据</button>
// pages/test/test.js
Page({data: {list:[1,2,3,4,5]},updateList() {//方式1this.data.list.splice(1,1)this.setData({list: this.data.list})}
})

// pages/test/test.js
Page({data: {list:[1,2,3,4,5]},updateList() {//方式1// this.data.list.splice(1,1)//方式2const newList = this.data.list.filter(item=>item!==2);this.setData({list: newList})}
})

相关文章:
小程序原生-利用setData()对不同类型的数据进行增删改
1. 声明和绑定数据 wxml文件 <view> {{school}} </view> <view>{{obj.name}}</view> <view id"{{id}}" > 绑定属性值 </view> <checkbox checked"{{isChecked}}"/> <!--算数运算--> <view>{{ id …...
.NET Core 集成 MiniProfiler性能分析工具
前言: 在日常开发中,应用程序的性能是我们需要关注的一个重点问题。当然我们有很多工具来分析程序性能:如:Zipkin等;但这些过于复杂,需要单独搭建。 MiniProfiler就是一款简单,但功能强大的应用…...
【JAVA开源】基于Vue和SpringBoot的旅游管理系统
本文项目编号 T 063 ,文末自助获取源码 \color{red}{T063,文末自助获取源码} T063,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...
信息学奥赛一本通 1885:【14NOIP提高组】寻找道路 | 洛谷 P2296 [NOIP2014 提高组] 寻找道路
【题目链接】 洛谷 P2296 [NOIP2014 提高组] 寻找道路 ybt 1885:【14NOIP提高组】寻找道路 【题目考点】 1. 图论:广搜 2. 图论:反图 【解题思路】 设path数组,path[i]表示顶点i出发到终点t是否有路径。 先求path数组&#…...
JVM 基础、GC 算法与 JProfiler 监控工具详解
目录 1、引言 1.1 JVM内存与本地内存 1.2 JVM与JDK的关系 2、JVM基础 2.1 JVM(Java Virtual Machine) 2.2 Java与JVM的关系 2.3 JVM的内存结构 2.3.1 堆内存 2.3.2 栈内存 2.3.3 方法区 2.3.4 本地方法栈 2.3.5 程序计数器(PC寄存…...
nodejs安装及环境配置
一、下载 进入官网https://nodejs.org/en/download/prebuilt-installer下载node.js安装包,选择对应版本的node,这里我选择的是14.21.3版本 二、安装 1、下载完成后,双击“node-v14.21.3-x64.msi”,开始安装Node.js 2、勾选复…...
无人机电力巡检:点亮电力巡检新视野!
一、无人机电力巡查的优势 提高巡检效率:无人机可以搭载高清摄像头、红外热像仪等先进设备,实时拍摄和传输图像,帮助巡检人员快速发现潜在问题,如电线破损、绝缘子污损、设备过热等,从而大大缩短了巡检周期。 降低人…...
详细介绍:API 和 SPI 的区别
文章目录 Java SPI (Service Provider Interface) 和 API (Application Programming Interface) 的区别详解目录1. 定义和目的1.1 API (Application Programming Interface)1.2 SPI (Service Provider Interface) 2. 使用场景2.1 API 的应用场景2.2 SPI 的应用场景 3. 加载和调…...
【面向对象】设计模式概念和分类
零.前提提要 本文章是我考中级软件设计师时的笔记,基本都是一些自己的思路和见解,现记录一下,希望可以帮助到即将考证的同学。 一.面向对象设计模式的概念 二.面向对象的设计模式分类 设计模式确定了所包含的类和实例、他们的角色和写作方式以…...
APK安装包arm64-v8a、armeabi-v7a、x86、x86_64如何区别?(2024年10月1日)
其实就是安卓CPU的进步史 安卓CPU类型: arm64-v8a: 第8代、64位ARM处理器,目前手机大多数是此架构(新手机,可以无脑选择)armeabiv-v7a: 第七代及以上的 ARM 处理器。2011年5月以后生产的大部分安卓设备都使用它armeabi: 第5代、第6代的ARM处理器&#…...
【DataLoom】智能问数 - 自然语言与数据库交互
探索DataLoom的智能问数功能:简化数据库查询 在数据驱动的决策制定中,数据库查询是获取洞察的关键步骤。但是,传统的数据库查询方法往往复杂且技术性强,这限制了非技术用户的使用。DataLoom的智能问数功能正是为了解决这一问题而…...
【Linux】进程地址空间(初步了解)
文章目录 1. 奇怪的现象2. 虚拟地址空间3. 关于页表4. 为什么要有虚拟地址 1. 奇怪的现象 我们先看一个现象: 为什么父子进程从“同一块地址中”读取到的值不一样呢? 因为这个地址不是物理内存的地址 ,如果是物理内存的地址是绝对不可能出…...
hdu-6024
hdu-6024 struct node {int x, c;bool operator<(const node &a) const{return x < a.x;} }; // dp[i][0]为到第i个教室且第i个教室不建糖果店的花费前缀和,dp[i][1]为到第i个教室且第i个教室建糖果店的花费前缀和 int dp[N][2]; void solve() {int n;wh…...
jmeter操作数据库
jmeter操作数据库 一、打开数据库 二、jmeter下载驱动,安装jdbc驱动 1、下载好的驱动包 2、将驱动包复制粘贴 存放在包的路径下 (1)jdk下面 a、路径:jdk1\jre\lib b、jdk1\jre\lib\ext (2)jmeter下 a、…...
Stable Diffusion绘画 | 如何做到不同动作表情,人物角色保持一致性(上篇)
由于 SD 具有强大的可控性,在固定人物角色方面,SD 是远超 MJ 的, 其中最好用,也是最优先的方法就是训练一个自己专属的角色模型,例如之前使用秋叶训练器得到的 LoRA模型。 另外,如果不想自己训练模型的话…...
中国计量大学《2023年801+2023年819自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《中国计量大学801819自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2023年801真题 2023年819真题 Part1:2023年完整版真题 2023年801真题…...
本地运行LLama 3.2的三种方法
大型语言模型(LLMs)已经彻底改变了AI领域,小型模型也在崛起。因此,即使是在旧的PC和智能手机上运行先进的LLMs也成为了可能。为了给大家一个起点,我们将探索三种不同的方法来本地与LLama 3.2进行交互。 先决条件 在我…...
基于单片机的温度和烟雾检测
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用DS18B20读取温度,滑动变阻器链接ADC0832数模转换模拟烟雾, 通过lcd1602显示屏显示, 超过阈值则对应的led灯亮起,蜂鸣器…...
利士策分享,探寻中华民族的精神纽带
利士策分享,探寻中华民族的精神纽带 在历史的长河中,中华民族以其独特的文化魅力和坚韧不拔的民族精神,屹立于世界民族之林。 这份力量,源自何处?或许,正是那份纯真的情,如同纽带一般ÿ…...
JAVA思维提升案例3
需求: 某系统的数字密码是一个四位数,如1983,为了安全,需要加密后再传输,加密规则是:对密码中的每位数,都加5 ,再对10求余,最后将所有数字顺序反转,得到一串加密后的新数…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
