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))

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐