如何关联多维数组的索引

问题描述 投票:0回答: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'],
  ['Swimming', 'English 1', 'History 1', 'Cooking 1']
]

我知道如何遍历主数组和子数组,但是我想将该术语与类相关联,例如:

2017年春季-Calc 1

2018年春季-Calc 2

2019年春季-经济学1

2020年春季-心理学1

我很清楚,数据的结构不是很好。我觉得我已经为此撞墙了。

javascript multidimensional-array
2个回答
2
投票

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

0
投票

用于一次循环处理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)
© www.soinside.com 2019 - 2024. All rights reserved.