js列表数据转换树形数据结构

157 阅读1分钟
function fn(data, pidvalue, options) {
  var result = [], temp;
  var {pid, id} = options;
  for (var i = 0; i < data.length; i++) {
      if (data[i][pid] == pidvalue) {
          var obj = data[i];
          temp = fn(data, data[i][id], options);
          if (temp.length > 0) {
              obj.children = temp;
          }
          result.push(obj);
      }
  }
  return result;
}

pidvalue parentId的值,可以传null

options {pid, id} pid代表数据结构中的父级id字段,id代表当前item的id