剛做小程序的過程中遇到一個小問題,使用setData更新數據時,想修改一個數組中的某個值,setData的參數是傳入一個對象,我只想修改數組中某一條數據,那我就得傳入一個帶數組key的屬性名進去
最開始我想當然的定一個變量傳入進去
var keyname = 'buyAttr.attr[' + key + '].active';
this.setData({keyname:active})
然而發現并沒有修改成功,最后查了下資料,原來keyname直接被作為屬性名了,我們需要給屬性名加上中括號,才能被識別為變量
var keyname = 'buyAttr.attr[' + key + '].active';
this.setData({[keyname]:active})
也可以直接
this.setData({['buyAttr.attr[' + key + '].active']:active})