收藏
回答

同一段代码,在开发工具和 iOS 平台上可以运行,在安卓报错

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug Android 测试了Android 9 & Android 10 小米 8,华为Mate 10 均为 7.0.9

公司的小程序的业务逻辑涉及到将存在父子关系的扁平数组转为树形数据的操作。

但是此段代码在开发工具和 iOS平台均可运行,但是在安卓却报了很难理解的错误,代码如下

listToTree: function(list) {
    let map = {},
      tree = []

 

    list.forEach(item => {
      item.children = []
      map[item.cat_real_id] = item

    })


    list.forEach(item => {
      if (item.pid !== '-1') {
        console.log(map[item.pid]) // Android:undefined
        map[item.pid].children.push(item)
      } else {
        tree.push(item)
      }
    })
 
    return tree
}

pid 和 cat_real_id 为确认父子关系的属性,cat_real_id(父级) === pid(子级)。当 pid == '-1' 时,为顶级


测试数据地址:https://jsbin.com/mapawem/edit?js

回答关注问题邀请回答
收藏

2 个回答

  • 默认²⁰²⁰
    默认²⁰²⁰
    2019-12-16


    换成一个等号的 != 试一下

    2019-12-16
    赞同
    回复
  • 尚
    2019-12-12

    报什么错了?

    2019-12-12
    赞同
    回复 1
    • 假象
      假象
      2019-12-13
      代码里面有一行console.log(map[item.pid]),注释了错误信息了
      2019-12-13
      回复
登录 后发表内容
问题标签