js 怎么合并数组

data() {
    return {
        listData: [],
        listTotal: []
      }
},
methods: {
   loadData: function(index, size) {
       var _this = this;
       this.$get('article/list', {
            p: index, //页码
            size: size //分页大小
        }).then(function(res) {
            _this.listData = res.list;
            if (index == 1) { //第一次存在本地
                uni.setStorage({
                    key: 'storage_list',
                    data: _this.listData
                });
            }
       });
   }
}
onReachBottom() { //每次上拉都会执行的函数
   _this.pageIndex++;
   _this.loadData(_this.pageIndex, _this.pageSize); //调用接口
   uni.getStorage({
            key: 'storage_list',
            success: function(res) {
               _this.listTotal = res.data.concat(_this.listData);
            }
        });
   
}

##
这个_this.listData是运行一次就是不同的10条数组,怎么将每次得到的_this.listData放在一个_this.listTotal里面,但是我这样写只能将前面的一次的合并,不能每次的叠加合并,每循环一次_this.listData的值就会改变,要怎么叠加的合并呢

阅读 3.1k
3 个回答
 success: function(res) {
    _this.listTotal = [..._this.listTotal, ...res.data.concat(_this.listData)];
 }

合并数组可以用es6的 ...数组扁平化方法

为什么不直接合并在listTotal上呢?

data() {
  return {
    listData: [],
    listTotal: []
  }
},
/* 长数组分段加载 */
methods: {
  loadData: function(index, size) {
    let _this = this;
    this.$get('article/list', {
      p: index, //页码
      size: size //分页大小
    }).then(function(res) {
      _this.listTotal = _this.listTotal.concat(res.listData);
    });
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题