同一段代码,在开发工具和 iOS 平台上可以运行,在安卓报错
发布于 5 年前 作者 jun44 9430 次浏览 来自 问答

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

但是此段代码在开发工具和 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 回复

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

报什么错了?

回到顶部