setData设置数组,怎么做性能最好?

发布于 5 年前作者 xiulanwan3106 次浏览最后编辑 5 年前来自 ask

__场景:__假设有一个数组arr,需要给arr中每个元素的flag属性设置为true。

__问题:__是先循环处理好数据,再覆盖arr的性能好呢?还是直接循环setData设置flag属性好?

// arr下的元素有很多很多的属性,这里只展示flag
let arr = [{flag: true},{flag: false}]; 

// 第一种方案
arr.forEach( item => {
    item.flag = true
})
this.setData({
  arr,
  })
// 第二种方案
arr.forEach( (item, index) => {
  this.setData({
      ["arr[" + index + "].flag"]: true
  })
})
3 回复
lihao
lihao1 楼5 年前

第一种

wuyang
wuyang2 楼5 年前

循环数据覆盖arr性能会更优。

因为数据在处理好之后统一设置。

第二种是循环了无数次的setData。

明明设置一次setData就可以,但是你设置了无数次,这样很容易页面崩溃

jkong
jkong3 楼10 个月前

第一种