新开发工具里 有办法在模板上判断一个字段是数组类型吗?

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

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

旧版开发者工具里使用数组独有的方法,类似 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 回复
jie53
jie531 楼6 年前

有一个比较 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>
mchang
mchang2 楼5 年前

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

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


function isArray(arr){

    return arr instanceof Array;

}