首页 > 编程语言 >微信小程序this.setData修改对象、数组中的值

微信小程序this.setData修改对象、数组中的值

时间:2023-01-10 11:56:24浏览次数:48  
标签:info temp 微信 user 数组 cars data setData

在微信小程序的[前端开发]中,使用this.setData方法修改data中的值,其格式为:

this.setData({
   '参数名1': 值1,
   '参数名2': 值2
)}

需要注意的是,如果是简单变量,这里的参数名可以不加引号。 经过测试,可以使用3种方式对data中的对象、数组中的数据进行修改。

假设原数据为:

data: {
    user_info:{
      name: 'li',
      age: 10
    },
    cars:['nio', 'bmw', 'wolks']
},

方式一:

使用字符串,例如:

this.setData({
      ['user_info.age']: 20,
      ['cars[0]']: 'tesla'
})

方式二:

构造变量,重新赋值,例如:

var temp = this.data.user_info
temp.age = 30
   
this.setData({
    user_info: temp
})
var temp = this.data.cars
temp[0] = 'volvo'
    
this.setData({
    cars: temp
})

方式三:

直接使用字符串,此种方式之前不可以,现在可以了,估计小程序库升级了。 注意和第一种方法的对比,推荐还是使用第一种方法。

this.setData({
      'user_info.age': 40,
      'cars[0]': 'ford'
})

完整代码:

Page({
  /**
   * 页面的初始数据
   */
  data: {
    user_info:{
      name: 'li',
      age: 10
    },
    cars:['nio', 'bmw', 'wolks']

  },

  change_data: function(){
    console.log('对象-修改前:', this.data.user_info)
    this.setData({
      ['user_info.age']: 20
    })
    console.log('对象-修改后1:', this.data.user_info)
    var temp = this.data.user_info
    temp.age = 30
    this.setData({
      user_info: temp
    })
    console.log('对象-修改后2:', this.data.user_info)
    this.setData({
      'user_info.age': 40
    })
    console.log('对象-修改后3:', this.data.user_info)

    console.log('数组-修改前:', this.data.cars)
    this.setData({
      ['cars[0]']: 'tesla'
    })
    console.log('数组-修改后1:', this.data.cars)
    var temp = this.data.cars
    temp[0] = 'volvo'
    this.setData({
      cars: temp
    })
    console.log('数组-修改后2:', this.data.cars)
    this.setData({
      'cars[0]': 'ford'
    })
    console.log('数组-修改后3:', this.data.cars)
  }
})

原文出处:https://wxpow.com/index.php/archives/36/

 

标签:info,temp,微信,user,数组,cars,data,setData
From: https://www.cnblogs.com/jjyy2008cn/p/17039723.html

相关文章

  • jQuery核心对象(伪数组,什么时候可以不写绑定文档加载完成的监听$(function(){},each中又
    伪数组相关文档主要是讲了给1.$()【函数】和$.xxx【方法】2.$xxx.yyy()【$xxx是一种常见的给jQuery对象的命名方式】【给对象用的方法】用的函数和方法。绝大部分都......
  • js提取元素中的指定成员组成数组
    js提取元素中的指定成员组成数组一、概念map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。二、语法array.map(fu......
  • VUE一个仿微信提现的功能
     UI组件用的是vant的键盘组件1:HTML部分<divclass="withdraw_page"><divclass="withdraw_page_header"><divclass="withdraw_page_header_......
  • 微信支付官方.net版SDK之坑
    登录地址:https://mch.weixin.qq.com地址:http://pay.weixin.qq.com/wiki/doc/api/index.htmlSDK下载:http://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1.......
  • .NET Core微信支付V3平台证书下载(包含签名验证)
    一、写在前面的话1、结尾附源码2、本文章讲述的是微信平台证书的下载,先搞清楚API证书和微信平台证书是两个东西,请参考官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3......
  • golang数组
    目录目录数组特性语法数组内存结构数组声明数组赋值数组指针数组方法数组遍历数组类型扩展1.字符串数组2.结构体数组3.接口数组4.管道数组5.图像解码器数......
  • Vue判断数组元素是否为undefined
    问题:现在有这样一个数组,没有第一个元素,如何判断该位置为空控制台输出为undefinde首先尝试array[0]===undefined,可以需要修改为array[0]==="undefinde"这样不行......
  • 利用折半查找法去找一个有序数组中你要找的数并输出
    从一个数组中寻找你要找的数并输出角标其中一种解决方法便是遍历数组找到你要的那个数。#include<stdio.h>intmain(){inta[]={1,2,3,4,5,6,7,8,9},flag=0;......
  • LeetCode.977 有序数组的平方
    1.题目给你一个按 非递减顺序 排序的整数数组 ​​​​nums​​​​,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。2.代码classSolution{public......
  • shell字符与数组之间的判断
    shell字符与数组之间的判断[[数组=~字符]]循环判断,匹配返回true if![[$allServer=~$1]]&&[$1!="all"];then echo"notfindparameter:$1,param......