收藏
回答

wx:for数组不能slice

wx:for="{{firstItems.slice(0,4)}}" 为什么数组不能在这里切片


最后一次编辑于  2018-05-14  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • HS
    HS
    2018-05-14

    您可以将切好的数组放入 data。

    2018-05-14
    赞同 3
    回复 9
    • 马四成
      马四成
      2018-05-14
      谢谢您的解答,我之前是打算切好了赋值,可是切好了再赋值我就需要在js里面去控制多个数组,比较繁琐,和直接初始化多个数组操作无区别。wx:for="{{firstItems.slice(0,4)}}" 这里的firstItem具体是什么类型,如果是数组为什么不可以切片,不是数组却又可以通过.length访问长度。
      2018-05-14
      回复
    • HS
      HS
      2018-05-14回复马四成
      是数组的类型,但不支持执行此函数操作。
      2018-05-14
      回复
    • 马四成
      马四成
      2018-05-21回复HS
      我切好了数组再放入data,可是这样渲染界面会出现延时,这样子我就只能在上个界面就切好然后传过来么?
      2018-05-21
      回复
    • HS
      HS
      2018-05-21回复马四成
      延时?不会这么夸张吧,只是切片而已,应该是很迅速的呀。你的代码怎么写的。
      2018-05-21
      回复
    • 马四成
      马四成
      2018-05-21回复HS
      //这里是获取数组 var data = util.initItems(options.dsrlx, options.ssdw); this.setData({ data: data.data, items: data.items }) //添加itemID for (var i = 0; i < data.items.length; i++) { this.data.items[i]["itemID"] = i; } this.sliceArray(options.dsrlx, options.ssdw);//切片方法 // 对数组切片 sliceArray: function (dsrlx, ssdw) { if (ssdw == '10') { if (dsrlx == '1') { this.setData({ firstItems: this.data.items.slice(0, 7), secondItems: this.data.items.slice(7, 12), thirdItems: this.data.items.slice(12, 17) }) } else if (dsrlx == '2') { this.setData({ firstItems: this.data.items.slice(0, 8), secondItems: this.data.items.slice(8, 13), thirdItems: this.data.items.slice(13, 18) }) } else { this.setData({ firstItems: this.data.items.slice(0, 7), secondItems: this.data.items.slice(7, 12), thirdItems: this.data.items.slice(12, 17) }) } } else { this.setData({ firstItems: this.data.items }) } },
      2018-05-21
      回复
    查看更多(4)