首页 > 解决方案 > 如何关联多维数组的索引

问题描述

我有这个基本术语和类的二维数组:

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 年春季 - 计算 1

2018 年春季 - 计算 2

2019 年春季 - 经济学 1

2020 年春季 - 心理学 1

我很清楚数据的结构不是很好。我觉得我已经碰壁了。

标签: javascriptmultidimensional-array

解决方案


您可以一次迭代两个外部区域。然后,遍历内部的,并将学期保存在第一个数组中,并将对应的课程保存在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);    
}


推荐阅读