【发布时间】:2016-08-09 14:36:15
【问题描述】:
我正在尝试根据我当前的平面数据集创建一个分层数据集。所以我需要的是这样的:
- [0 … 99]
- 0:对象
- 类型:“喜剧 - 音乐”
- 工作室:“派拉蒙”
- 标题““泰坦尼克号”
- 1:对象
- 类型:“喜剧 - 音乐”
- 工作室:“布埃纳维斯塔”
- 标题”“Monsters, Inc.”
- 2:对象
- 0:对象
以此类推
我想要这个:
- 0:对象
- 类型:“喜剧 - 音乐”
- 工作室:“派拉蒙”
- 片名:《泰坦尼克号》
- 标题:“另一个标题”
- 工作室:“布埃纳维斯塔”
- 标题:“Monsters, Inc.”
- 工作室:“派拉蒙”
- 类型:“喜剧 - 音乐”
我想不出一种方法来实现这一点。我只获得了 2 层层次结构,但我需要第三层。任何帮助将不胜感激!
我有这个方法。
function formatObjectToTreeStructure(data, filterName) {
var filterList = [], allFilterList = [], constructedObject = [];
data.children = data.data;
for (var key in data.children[0]) {
allFilterList.push(key);
}
for (var index = 0; index < data.children.length; index++) {
var temp = null;
var filterIndex = filterList.indexOf(data.children[index][filterName]);
if (filterIndex == -1) {
filterList.push(data.children[index][filterName]);
temp = {};
temp[filterName] = data.children[index][filterName];
temp.children = [];
var tempChildren = {};
tempChildren[data.dataTableAlign.group1] = data.children[index][data.dataTableAlign.group1];
tempChildren[data.dataTableAlign.group2] = data.children[index][data.dataTableAlign.group2];
tempChildren[data.dataTableAlign.group3] = data.children[index][data.dataTableAlign.group3];
temp.children.push(tempChildren);
constructedObject.push(temp);
} else {
var tempChildren = {};
tempChildren[data.dataTableAlign.group1] = data.children[index][data.dataTableAlign.group1];
tempChildren[data.dataTableAlign.group2] = data.children[index][data.dataTableAlign.group2];
tempChildren[data.dataTableAlign.group3] = data.children[index][data.dataTableAlign.group3];
constructedObject[filterIndex].children.push(tempChildren);
}
}
return constructedObject;
}
但这是就我所知。虽然它只有两个层次。我得到了 Genre 和它的孩子,但我似乎无法弄清楚如何获得同一个工作室的所有标题。
【问题讨论】:
-
到目前为止你尝试过什么? StackOverflow 不是“为我编写代码”的网站。
-
我编辑了问题
标签: javascript arrays loops hierarchy