js递归处理数组数据结构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
}
js 二维数组})
// 对象转数组并返回
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 = at(flatten(arr[i]))
}else{
result.push(arr[i])
}
}
return result
}
console.log(flatten(arr))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论