我有一个这样的数组:
0: "SuSPENSE"
1: "Subcontractor Expense"
2: "Data Entry"
3: "Design"
4: "Programming"
5: "Subcontractor Expense - Other"
6: "Total Subcontractor Expense"
7: "Technology-Communication"
8: "Licenses"
9: "Domain Hosting Fee"
10: "Internet"
11: "Internet Servers"
12: "Internet - Other"
13: "Total Internet"
14: "Telephone"
15: "Call Center"
16: "Cellular Phones"
17: "Fax"
18: "Telephone - Other"
19: "Total Telephone"
20: "Hardware/Software"
21: "Computer Software"
22: "Hardware/Software - Other"
23: "Total Hardware/Software"
24: "Technology-Communication - Other"
25: "Total Technology-Communication"
这是类别和子类别的列表。例如, 是一个子类别,以 结尾。与 和 相同。模板始终相同,类别以“(名称)”开头,以“总计(名称)”结尾。但每个类别可以有许多级别的子类别,就像树一样。我正在尝试使用递归函数将此数组解析为类似JSON的数组或多维数组,但我永远不知道最大深度是多少。我尝试使用以下方法执行以下操作:"Subcontractor Expense""Total Subcontractor Expense""Internet""Total Internet"js
var parsedArray = [];
var items = getLineItems("Expense", "Total Expense"); //This is a function to return the mentioned array
var newArray = parseArray(items, "Expense");
function parseArray(items, category){
var lineItems = [];
for(var i = 0; i < items.length; i++){
var inArray = $.inArray("Total " + items[i], items);
if(inArray !== -1){
parseArray(getLineItems(items[i], "Total " + items[i]), items[i]);
}
else {
lineItems.push(items[i]);
}
}
parsedArray[category] = lineItems;
}
但是这个递归函数永远不会比2级更深。有可能生成这样的东西吗?
"SuSPENSE"
"Subcontractor Expense"
"Data Entry"
"Design"
"Programming"
"Subcontractor Expense - Other"
"Technology-Communication"
"Licenses"
"Domain Hosting Fee"
"Internet"
"Internet Servers"
"Internet - Other"
"Telephone"
"Call Center"
"Cellular Phones"
"Fax"
"Telephone - Other"
"Hardware/Software"
"Computer Software"
"Hardware/Software - Other"
"Technology-Communication - Other"
忽然笑
幕布斯7119047
相关分类