在WXS中遍历对象

2019-10-17  本文已影响0人  不吃瓜的码农

微信小程序提供了WXS语言,允许我们在WXML中执行简单的脚本,这在渲染时加工数据很有用,但是WXS没有JS功能强大,仅提供了基础功能,WXS没有for...in语句,也不能用Object.keys,所以想要遍历一个plain object,我们需要自己实现。
下面实现了一个遍历plain object方法。它的思路是:

代码实现:

 function objectKeys(obj) {
    var str = JSON.stringify(obj);
    var reg = getRegExp('"(\w+)":|[{}]', "g");
    var keys = [];
    var nested = 0;
    var result = null;

    while((result = reg.exec(str)) !== null) {
      var match = result[0]

      switch(match) {
        case "{":
          nested++;
          break;
        case "}":
          nested--;
          break;
        default:
          if (nested === 1) keys.push(result[1]);
          break;
      }
    }
    
    return keys;
  }

得到对象的全部属性后,我们就可以遍历对象了。

上一篇 下一篇

猜你喜欢

热点阅读