【发布时间】:2013-02-24 16:08:00
【问题描述】:
我正在尝试将 Javascript 对象文字转换为另一个。我认为有一些循环是可能的,但我无法完成。目标结构如下所示,“convertedData”。
小提琴可以在这里找到:http://jsbin.com/ajemih/9/edit
这是 JSON 数据:
var data =
{
"29-10-2012": {
"1a": {
"allMovement": "1",
"allLoad": "2",
"loadMovement": "3"
},
"1b": {
"allMovement": 4,
"allLoad": 5,
"loadMovement": 6
}
},
"22-02-2013": {
"1a": {
"allMovement": "7",
"allLoad": "8",
"loadMovement": "9"
},
"1b": {
"allMovement": "10",
"allLoad": "11",
"loadMovement": "12"
}
}
};
for (day in data) {
for (id in data[day]) {
document.write(data[day][id].allMovement+"<br>");
document.write(data[day][id].allLoad+"<br>");
document.write(data[day][id].loadMovement+"<br>");
}
}
/*
convertedData = [[1,7],
[2, 8],
[3, 9],
["4","10"],
["5","11"],
["6", "12"]];
convertedData = [["1a-allMovement-29-10-2012","1a-allMovement-22-02-2013],
["1a-allLoad-29-10-2012", "1a-allLoad22-02-2013"],
["1a-loadMovement-29-10-2012", "1a-loadMovement-22-02-2013"],
["1b-allMovement-29-10-2012","1a-allMovement-22-02-2013"],
["1b-allLoad-29-10-2012","1b-allLoad22-02-2013"],
["1b-loadMovement-29-10-2012", "1b-loadMovement-22-02-2013"]];
*/
【问题讨论】:
-
您的 jsFiddle 无法为我加载。另外,是的,你需要一个循环,可能是 3 个。
-
大声笑,前段时间我有一个类似的面试问题。有固定的深度还是理论上是无限的?将需要几个循环或递归
-
深度与示例中的一样,理论上不是无限的。
-
即使我无法创建和保存 jsfiddle 来向您展示问题,它目前也无法加载。我不知道为什么。
-
没有 JSON 对象这样的东西。只有 JSON 字符串。你所拥有的是一个 JavaScript 对象文字。
标签: javascript jquery json object loops