87,907
社区成员
发帖
与我相关
我的任务
分享
var sourceArr = [
'奴隶社会,非洲,古埃及文明,金字塔',
',亚洲,两河流域文明,汉谟拉比法典',
',,古印度,种姓制度',
',,,佛教的创立',
',欧洲,希腊,希腊城邦',
',,罗马,城邦',
',,,帝国的征服与扩展',
]
function recursiveSource(sourceArr) {
var obj = {}
for (var i = 0; i < sourceArr.length; i++) {
var source = sourceArr[i]
var sourceSplit = source.split(',')
// 获取同级
if(sourceSplit[0] != '') {
obj[sourceSplit[0]] = []
var sourceChildArr = []
// 获取子元素的同级
for (var j = i; j < sourceArr.length; j++) {
var sourceChild = sourceArr[j]
var sourceChildSplit = sourceChild.split(',')
// 获取当前级的子元素
if(j == i) {
sourceChildArr.push(sourceChildSplit.slice(1).join(','))
}
else {
if(sourceChildSplit[0] != '')
{
// 遇到同级就退出当前循环
break
}
else {
// 获取其他子元素
var sourceChildSlice = sourceChildSplit.slice(1).join(',')
sourceChildArr.push(sourceChildSlice)
}
}
}
// 进入递归
obj[sourceSplit[0]].push(recursiveSource(sourceChildArr))
}
}
return obj
}
var recursiveSourceJson = recursiveSource(sourceArr)