setData设置数组,怎么做性能最好?
发布于 4 年前 作者 xiulanwan 2893 次浏览 来自 问答

__场景:__假设有一个数组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 回复

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

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

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

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

回到顶部