[{
title: '0-0',
key: '0-0',
parent_id: 0,
children: [{
title: '0-0-0',
key: '0-0-0',
parent_id: "0-0",
children: [
{title: '0-0-0-0', key: '0-0-0-0', parent_id: '0-0-0',},
{title: '0-0-0-1', key: '0-0-0-1', parent_id: '0-0-0',},
{title: '0-0-0-2', key: '0-0-0-2', parent_id: '0-0-0',},
],
},
{
title: '0-0-1',
key: '0-0-1',
parent_id: '0-0',
children: [
{title: '0-0-1-0', key: '0-0-1-0', parent_id: '0-0-1',},
{title: '0-0-1-1', key: '0-0-1-1', parent_id: '0-0-1',},
{title: '0-0-1-2', key: '0-0-1-2', parent_id: '0-0-1',},
],
}, {
parent_id: '0-0',
title: '0-0-2',
key: '0-0-2',
}],
},
{
title: '0-1',
key: '0-1',
parent_id: 0,
children: [
{title: '0-1-0-0', key: '0-1-0-0', parent_id: '0-1',},
{title: '0-1-0-1', key: '0-1-0-1', parent_id: '0-1',},
{title: '0-1-0-2', key: '0-1-0-2', parent_id: '0-1',},
],
},
{
title: '0-2',
key: '0-2',
parent_id: 0,
}];
转成
{
"0": {
"0-0": {
"title": "0-0",
"key": "0-0",
"parent_id": 0
},
"0-1": {
"title": "0-1",
"key": "0-1",
"parent_id": 0
},
"0-2": {
"title": "0-2",
"key": "0-2",
"parent_id": 0
}
},
"0-0": {
"0-0-0": {
"title": "0-0-0",
"key": "0-0-0",
"parent_id": "0-0"
},
"0-0-1": {
"title": "0-0-1",
"key": "0-0-1",
"parent_id": "0-0"
},
"0-0-2": {
"parent_id": "0-0",
"title": "0-0-2",
"key": "0-0-2"
}
},
"0-0-0": {
"0-0-0-0": {
"title": "0-0-0-0",
"key": "0-0-0-0",
"parent_id": "0-0-0"
},
"0-0-0-1": {
"title": "0-0-0-1",
"key": "0-0-0-1",
"parent_id": "0-0-0"
},
"0-0-0-2": {
"title": "0-0-0-2",
"key": "0-0-0-2",
"parent_id": "0-0-0"
}
},
"0-0-1": {
"0-0-1-0": {
"title": "0-0-1-0",
"key": "0-0-1-0",
"parent_id": "0-0-1"
},
"0-0-1-1": {
"title": "0-0-1-1",
"key": "0-0-1-1",
"parent_id": "0-0-1"
},
"0-0-1-2": {
"title": "0-0-1-2",
"key": "0-0-1-2",
"parent_id": "0-0-1"
}
},
"0-1": {
"0-1-0-0": {
"title": "0-1-0-0",
"key": "0-1-0-0",
"parent_id": "0-1"
},
"0-1-0-1": {
"title": "0-1-0-1",
"key": "0-1-0-1",
"parent_id": "0-1"
},
"0-1-0-2": {
"title": "0-1-0-2",
"key": "0-1-0-2",
"parent_id": "0-1"
}
}
}
代码
var data = [{
title: '0-0',
key: '0-0',
parent_id: 0,
children: [{
title: '0-0-0',
key: '0-0-0',
parent_id: "0-0",
children: [
{title: '0-0-0-0', key: '0-0-0-0', parent_id: '0-0-0',},
{title: '0-0-0-1', key: '0-0-0-1', parent_id: '0-0-0',},
{title: '0-0-0-2', key: '0-0-0-2', parent_id: '0-0-0',},
],
},
{
title: '0-0-1',
key: '0-0-1',
parent_id: '0-0',
children: [
{title: '0-0-1-0', key: '0-0-1-0', parent_id: '0-0-1',},
{title: '0-0-1-1', key: '0-0-1-1', parent_id: '0-0-1',},
{title: '0-0-1-2', key: '0-0-1-2', parent_id: '0-0-1',},
],
}, {
parent_id: '0-0',
title: '0-0-2',
key: '0-0-2',
}],
},
{
title: '0-1',
key: '0-1',
parent_id: 0,
children: [
{title: '0-1-0-0', key: '0-1-0-0', parent_id: '0-1',},
{title: '0-1-0-1', key: '0-1-0-1', parent_id: '0-1',},
{title: '0-1-0-2', key: '0-1-0-2', parent_id: '0-1',},
],
},
{
title: '0-2',
key: '0-2',
parent_id: 0,
}];
import Map from 'lodash.map'
import Merge from 'lodash.merge'
function treeToArray(tree, array) {
for (var i = 0; i < tree.length; i++) {
var item = tree[i]
var copyItem = JSON.parse(JSON.stringify(item))
delete copyItem.children
array[item.parent_id] = Merge(array[item.parent_id], {})
array[item.parent_id][copyItem.key] = copyItem
if (item.children && item.children.length >= 0) {
treeToArray(item.children, array)
}
}
}
var adpaterData = {}
treeToArray(data, adpaterData)
cc(adpaterData)
export default adpaterData