我有这个二维的基本术语和类数组:
const content = [
['Spring 2017', 'Spring 2018', 'Spring 2019', 'Spring 2020'],
['Calc 1', 'Calc 2', 'Economics 1', 'Psychology 1'],
['Summer 2017', 'Summer 2018', 'Summer 2019', 'Summer 2020'],
['Swimming', 'English 1', 'History 1', 'Cooking 1']
]
我知道如何遍历主数组和子数组,但是我想将该术语与类相关联,例如:
2017年春季-Calc 1
2018年春季-Calc 2
2019年春季-经济学1
2020年春季-心理学1
我很清楚,数据的结构不是很好。我觉得我已经为此撞墙了。
您可以一次遍历两个外部区域。然后,对内部数组进行迭代,然后将第一个数组中的学期与第二个数组中的对应课程保存在JSON
对象中作为键值对。您需要确保外部数组的长度均匀,内部数组的长度相等。我假设学期是唯一的,否则,您需要将它们作为对象存储在数组中。
const content = [
['Spring 2017', 'Spring 2018', 'Spring 2019', 'Spring 2020'],
['Calc 1', 'Calc 2', 'Economics 1', 'Psychology 1'],
['Summer 2017', 'Summer 2018', 'Summer 2019', 'Summer 2020'],
['Swimming', 'English 1', 'History 1', 'Cooking 1']
];
let coursesPerSemester = {};
if(content.length%2==0){
for(let i = 0; i < content.length; i+=2){
let semesters = content[i];
if(content[i+1].length == semesters.length){
for(let j = 0; j < semesters.length; j++){
coursesPerSemester[semesters[j]] = content[i+1][j];
}
}
}
console.log(coursesPerSemester);
}
用于一次循环处理2组数组。
const content = [
['Spring 2017', 'Spring 2018', 'Spring 2019', 'Spring 2020'],
['Calc 1', 'Calc 2', 'Economics 1', 'Psychology 1'],
['Summer 2017', 'Summer 2018', 'Summer 2019', 'Summer 2020','x'],
['Swimming', 'English 1', 'History 1', 'Cooking 1','y']
]
const res = []
for(let i = 0; i < content.length; i+=2)
for(let j = 0; j < content[i].length; j++)
res.push({term: content[i][j], name: content[i+1][j]})
console.log(res)