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:是的,確切的。 –