Javascript数组作为更多可读数组

I a*_*son 1 javascript arrays object

我有一个像下表这样的数据集.

+------+---------+----+----+----+----+-------+----------+
| Year | Subject | A  | B  | C  | F  | Total | PassRate |
+------+---------+----+----+----+----+-------+----------+
| 2015 | Maths   | 12 | 20 | 10 |  5 |    47 |       80 |
| 2015 | Sinhala | 18 | 14 |  5 | 10 |    47 |       75 |
| 2016 | Maths   | 25 | 15 |  4 |  8 |    52 |       25 |
| 2016 | Sinhala | 20 | 12 |  2 | 18 |    52 |       60 |
+------+---------+----+----+----+----+-------+----------+
Run Code Online (Sandbox Code Playgroud)

我想将这些数据存储在JavaScript数组中.所以我有以下代码.

var firstArray = [];
firstArray.push(['Year', 'Subject', 'A', 'B', 'C', 'F', 'Total', 'PassRate']); // headers
firstArray.push([2015, 'Maths', 12, 20, 10, 5, 47, 80]); // 1st row
firstArray.push([2015, 'Sinhala', 18, 14, 5, 10, 47, 75]) // 2nd row
console.log(firstArray);
Run Code Online (Sandbox Code Playgroud)

如果我需要阅读2015年数学中有多少"B",我需要运行firstArray[1][3].

那是不可读的.我的意思是很难找到它意味着什么firstArray[1][3].

那么有没有办法构建我的数组更可读的方式,firstArray[2015]['maths']如果我想读数数为2015年有多少"B",s

Cer*_*nce 8

听起来你想要一个按年索引的对象,包含由subject索引的对象:

const years = {
  '2015': {
    Maths: {
      A: 12, B: 20, C: 10, F: 5, Total: 47, PassRate: 80
    },
    Sinhala: {
      A: 18, B: 14, C: 5, F: 10, Total: 47, PassRate: 75
    },
  },
  '2016': {
    // ...
  }
}
console.log(years['2015'].Maths);
Run Code Online (Sandbox Code Playgroud)