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

这篇具有很好参考价值的文章主要介绍了微信小程序this.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
})

方式三:

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

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

完整代码:文章来源地址https://www.toymoban.com/news/detail-692607.html

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)
  }
})

到了这里,关于微信小程序this.setData修改对象、数组中的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信开发】小程序this.setData({})中对普通字段、数组以及数组对象进行赋值,对数组对象进行操作

    前言:         之最近在开发一个系统的时候,this.setData总有时候会出问题,查了查资料,一下进行总结: 字段赋值; 数组静态赋值; 数组动态赋值; 对象数组动态赋值; 组对象进行操作         ① 末位加数据;         ② 中间或者开头加数据;         ③ 删除

    2024年02月08日
    浏览(46)
  • 小程序setData修改数组和对象

    Page({   data: {     arrs:[       { text: \\\'0概率固定\\\', value: 0 },       { text: \\\'1累计固定\\\', value: 1 },       { text: \\\'2概率随机\\\', value: 2 },       { text: \\\'3概率赠送\\\', value: 3 },       { text: \\\'4保夹模式\\\', value: 4 },       { text: \\\'5累计随机\\\', value: 5 },  

    2024年02月09日
    浏览(35)
  • 微信小程序 通过setData 给两个变量设置同一个数组时,为什么修改一个变量,另一个会也被修改?

    在微信小程序中,使用 setData 方法更新数据时,如果给两个变量设置同一个数组,修改其中一个变量的值会导致另一个变量也被修改的原因是,数组是引用类型的数据,在内存中的存储方式是按引用地址存储。 当你将一个数组赋值给两个变量时,实际上两个变量共享同一块内

    2024年02月11日
    浏览(45)
  • 微信小程序中this.data 和 this.setData

    在微信小程序中,this.data 和 this.setData 是两个用于处理数据的不同方式。 1、this.data:this.data 是一个对象,用于存储小程序页面的数据。当我们需要获取或修改页面的数据时,可以直接访问和操作 this.data 对象。例如,this.data.name 可以获取名为 name 的数据,this.data.name = ‘Jo

    2024年02月03日
    浏览(49)
  • 微信小程序setData给数组赋值问题

    因为小程序中分有逻辑层和渲染层等。所以需要用setdata函数,渲染到视图界面。普通的修改属性是通过 this.setData({demo:true}) 的方法设置,但是本人遇到一种情况,需要通过下标区改变数组某一项中的某属性的值,方法如下: 1.有确定的下标情况下 2.没有确定的下标情况下

    2024年02月11日
    浏览(49)
  • 微信小程序错误-TypeError: this.setData is not a function

    微信小程序在与后台获取数据的时候遇到: TypeError: this.setData is not a function错误。 产生原因: 输出结果能输出,会产生警告,原因是this不能直接在请求的回调函数里写this, 解决方法:     在请求外声明一个变量,接收onload函数的this。  

    2024年02月16日
    浏览(44)
  • 【微信小程序】挂载网络请求到全局this对象

    《工欲善其事,必先利其器》 有一些常用的东西,如 http 请求、弹窗、错误处理等等,如果在每个页面都引用一遍,会增加不必的代码量,我们可以在 app.js 中对 Page 对象进行简单地封装,从而让 Page 的能力更强。 一、封装原生网络请求 request.js : 二、app.js 引入网络请求,

    2024年02月07日
    浏览(40)
  • 微信小程序 - 解决 setData() 无法修改 properties 数据的问题,修改子组件 properties 传递过来的数据(父级页面传入子组件的数据无法更新修改的问题,简洁快速解决方案!)

    当页面(父组件)传递给子组件属性时,需要使用 properties 属性接收,但遗憾的是后续无法对该属性下的数据进行更新数据。 本文实现了微信小程序开发中,解决子组件使用 properties 接收后,无法进行数据的编辑与更新问题, 简单来说,就是组件内部无法通过 setData 对 pro

    2024年02月16日
    浏览(70)
  • 微信小程序 - setData

    1、setData  函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的  this.data  的值(同步)。 2、其中  key  可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如  array[2].message , a.b.c.d ,并且不需要在 this.data 中预先定义。 3、直接修改 t

    2024年02月11日
    浏览(36)
  • 微信小程序数组对象的添加及删除(Vue2)

    数组添加元素的两个方法(都不去重) 1、数组.push(对象) 直接向数组末尾追加新的元素(不会去重) 使用push添加数组时会将整个数组直接加入数组之中 1、数组.concat(对象) 使用concat会将要追加的数据(数组)进行拆分以此追加到数据末尾 追加相同的数据 追加一组数组 3.数

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包