(Javascript)减少和Unflatten数组
(Javascript) Reduce and Unflatten Array
使用嵌套的值数组:
var stagedArray = [
["Spring", "Volleyball", "V"],
["Spring", "Baseball", "V"],
["Fall", "Baseball", "JV"],
["Fall", "Baseball", "V"]
];
假设每个嵌套数组的层次结构位置0是父级,位置1是它的直接子级,位置2是位置1的子级,我可以使用什么方法来减少和不平坦这个数组,以得到类似于下面的结果:
var finalList = [
{
season: "Spring",
items: [
{
sport: "Basketball",
items: [
{ division: "V" },
]
}
{
sport: "Volleyball",
items: [
{ division: "V" },
]
}
]
},
{
season: "Fall",
items: [
{
sport: "Baseball",
items: [
{ division: "V" },
{ division: "JV" }
]
}
]
}]
理想情况下,我想创建一个函数来定义什么位置和哪个标签与它们动态关联。很多谢谢!
与同事一起工作了一个很好的起点,接下来的步骤将是更新该函数,使其递归地工作,具有不同的深度和动态标签。
function getTranformedData(data) {
var transformedData = {};
for (var i = 0, n = stagedArray.length; i < n; i++) {
var sportData = stagedArray[i];
var season = sportData[0];
var typeOfSport = sportData[1];
var teamDivision = sportData[2];
if (!transformedData.hasOwnProperty(season)) {
// Create new season object
transformedData[season] = {
'season': season,
'items': []
};
}
var transformedSportData = {
'sport': typeOfSport,
'items': {
'division': teamDivision
}
};
transformedData[season]['items'].push(transformedSportData);
}
return transformedData;
}
function convertObjectToArrayOfOjects(dataObject) {
var data = []
for (var key in dataObject) {
data.push(dataObject[key]);
}
return data;
}
var stagedArray = [
["Spring", "Volleyball", "V"],
["Spring", "Baseball", "V"],
["Fall", "Baseball", "JV"],
["Fall", "Baseball", "V"]
];
var data = getTranformedData(stagedArray);
data = convertObjectToArrayOfOjects(data);
console.log(data);
/* RESULTING DAT STRUCTURE */
/*
[{
"season": "Spring",
"items": [{
"sport": "Volleyball",
"items": {
"division": "V"
}
}, {
"sport": "Baseball",
"items": {
"division": "V"
}
}]
}, {
"season": "Fall",
"items": [{
"sport": "Baseball",
"items": {
"division": "JV"
}
}, {
"sport": "Baseball",
"items": {
"division": "V"
}
}]
}]
*/
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 在Javascript中转换对象数组
- (Javascript)减少和Unflatten数组