新开发工具里 有办法在模板上判断一个字段是数组类型吗?
发布于 6 年前 作者 min90 13795 次浏览 来自 问答

如题 怎么在模板上判断一个字段是数组类型?

旧版开发者工具里使用数组独有的方法,类似 fragment.join !== undefined 可以判断 fragment 是数组类型,新版开发者工具里面该方法失效

补充:

需要判断的字段是由外层传进来的,情况比较复杂,所以只能在模板上面进行判断。使用 instanceof 在模板上会报错。

结果:

最后通过新发布的 wxs 脚本语言解决了。

<wxs module=“util”>

    var isArray = function(array) {

      return array instanceof Array;

    }

    module.exports.isArray = isArray;

</wxs>

<view wx:if="{{util.isArray(real_value)}}"></view>

2 回复

有一个比较 Tricky 的方法,可以尝试一下,就是使用 getter。

const array = [1, 2, 3]
 
Page({
  data: {
    obj: {
      get info() {
        return Array.isArray(array)
      }
    
  }
})
<block wx:if="{{obj.info}}">
  <view>view </view>
</block>

用instanceof运算符来判断对象是否为数组类型

[1,2,3] instanceof Array; // true


function isArray(arr){

    return arr instanceof Array;

}

回到顶部