0
我有一个对象“测试”:改变位置的JavaScript
var test={
"unit3":[
{
"chapter":{
"id":4,
"name":"earth",
"id_above":2
}
},
{
"book":{"name":"earth"}
}
],
"unit4":[
{
"chapter":{
"id":5,
"name":"water",
"id_above":2
}
},
{
"book":{"name":"sea"}
}
],
"unit1":[
{
"chapter":{
"id":2,
"name":"biology",
"id_above":2
}
},
{
"book":{"name":"science"}
}
]
};
据“id_above值”(id_above和id应该是相同的,如果没有,我必须移动它下右单元),我希望得到这样的:
var hope={
"unit1":[
{
"chapter":{
"id":2,
"name":"biology",
"id_above":2
}
},
{
"book":{"name":"science"}
}
],
"sub":[
{
"unit3":[
{
"chapter":{
"id":4,
"name":"earth",
"id_above":2
}
},
{
"book":{"name":"earth"}
}
],
"unit4":[
{
"chapter":{
"id":5,
"name":"water",
"id_above":2
}
},
{
"book":{"name":"sea"}
}
]
}
]
}
我想:
for (var key in test){
if(test.hasOwnProperty(key)){
for (var i =0;i<test[key].length;i++){
if (test[key][i].chapter.id!=test[key][i].chapter.id_above){
for (var key2 in test){
if(test.hasOwnProperty(key2)){
for (var j =0;j<test[key2].length;j++){
var o=_.find(test[key2][j].chapter,{id:test[key][i].chapter.id_above})
console.log("o",o); //undefined
} }}} } } }
的问题是,我的变量o是 '未定义',我想要做的事情之后像这样:
test.sub=a;
你能帮我吗?谢谢。
对不起,英语不是我的母语。如果我明白了,你告诉我将'test'转换为数组? – John
@John:是的,确切的。 –