Javascript 在梦中循环在梦中循环在梦中循环
我正在尝试使用一些API,作为回报,它们给了我一个巨大的JSON对象,我需要将它与我的JSON对象进行比较,但是,我有太多的循环,这不再有趣了 我的当前对象如下所示:Javascript 在梦中循环在梦中循环在梦中循环,javascript,json,nested-loops,Javascript,Json,Nested Loops,我正在尝试使用一些API,作为回报,它们给了我一个巨大的JSON对象,我需要将它与我的JSON对象进行比较,但是,我有太多的循环,这不再有趣了 我的当前对象如下所示: var courses = { art_117: { course_folder: true, sco_id: "12111", subFolders: [{ folderName: "SET_01", isFolder: tr
var courses = {
art_117: {
course_folder: true,
sco_id: "12111",
subFolders: [{
folderName: "SET_01",
isFolder: true,
number: 1,
sco_id: "121116"
}, {
folderName: 'SET_06',
isFolder: true,
number: 6,
sco_id: '121117'
}]
}
}
var json = {
"status": {
"code": "ok"
},
"scos": {
"sco": [{
"name": "SET_01",
"url_path": "/134123/",
"is_seminar": "false",
"sco_id": "63453452",
"folder_id": "12111",
"type": "folder",
"icon": "folder",
"display_seq": "0",
"duration": "",
"is_folder": "1"
}, {
"name": "SET_02",
"url_path": "/f4r8y3l0sy6/",
"is_seminar": "false",
"sco_id": "123413",
"folder_id": "12111",
"type": "folder",
"icon": "folder",
"display_seq": "0",
"duration": "",
"is_folder": "1"
}, {
"name": "SET_03",
"url_path": "/f7d6lf2xbb1/",
"is_seminar": "false",
"sco_id": "12341234",
"folder_id": "12111",
"type": "folder",
"icon": "folder",
"display_seq": "0",
"duration": "",
"is_folder": "1"
}]
}
}
返回的对象如下所示:
var courses = {
art_117: {
course_folder: true,
sco_id: "12111",
subFolders: [{
folderName: "SET_01",
isFolder: true,
number: 1,
sco_id: "121116"
}, {
folderName: 'SET_06',
isFolder: true,
number: 6,
sco_id: '121117'
}]
}
}
var json = {
"status": {
"code": "ok"
},
"scos": {
"sco": [{
"name": "SET_01",
"url_path": "/134123/",
"is_seminar": "false",
"sco_id": "63453452",
"folder_id": "12111",
"type": "folder",
"icon": "folder",
"display_seq": "0",
"duration": "",
"is_folder": "1"
}, {
"name": "SET_02",
"url_path": "/f4r8y3l0sy6/",
"is_seminar": "false",
"sco_id": "123413",
"folder_id": "12111",
"type": "folder",
"icon": "folder",
"display_seq": "0",
"duration": "",
"is_folder": "1"
}, {
"name": "SET_03",
"url_path": "/f7d6lf2xbb1/",
"is_seminar": "false",
"sco_id": "12341234",
"folder_id": "12111",
"type": "folder",
"icon": "folder",
"display_seq": "0",
"duration": "",
"is_folder": "1"
}]
}
}
这是我目前的密码
if (typeof json.scos.sco != 'undefined') {
var scos = json.scos.sco;
var len = scos.length;
for (var i = 0; i < len; i++) {
var id = scos[i]['folder_id'];
var name = scos[i]['name'];
for (var j = 0; j < keys.length; j++) {
if (adobe.courses[keys[j]]['sco_id'] == id) {
var subFolders = adobe.courses[keys[j]]['subFolders'];
for (var k = 0; k < sections.length; k++) {
if (sections[k]['folderName'] == name) {
courses[keys[j]]['subFolders'][k]['sco_id'] = scos[i]['sco_id'];
courses[keys[j]]['subFolders'][k]['isFolder'] = true;
}
}
}
}
}
}
如何重写它,使其不存在3个嵌套循环?keys.length什么是keys?我看不出有超过两个循环的原因。那些sco_ID是什么?它们可以用于全局高效的查找结构吗?keys.length是原始json对象中对象键的列表。sco_id是从存储在当前对象中的json对象返回的文件夹id