1. 一维数组转成嵌套数组(递归) // 处理tree 多层级 export let treeClassList = (array) => { // let temp = {} let tree = {} // 数组转 键值对 console.log('array',array) array.forEach(item => { temp[item.ID] = item }) let tempKeys = Object.keys(temp) tempKeys.forEach(key => { // 获取当前项 let item = temp[key] // 当前项 Parent_ID let _itemPId = item.Parent_ID console.log('item',item) // console.log(temp[_itemPId]) // 获取父级项 let parentItemByPid = temp[_itemPId] if (parentItemByPid) { if (!parentItemByPid.children) { parentItemByPid.children = [] } parentItemByPid.children.push(item) } else { tree[item.ID] = item } }) // 对象转数组并返回 return Object.keys(tree).map(key => tree[key]) } 2.二维数组转成一维数组 (递归) var arr = [1, [2, [3, 4]]] function flatten(arr) { var result = [] for (var i = 0, len = arr.length; i < len; i++) { if (Array.isArray(arr[i])) { result = result.concat(flatten(arr[i])) } else { result.push(arr[i]) } } return result } console.log(flatten(arr))