JavaScript 2维数组问题

时间:2019-05-03 03:09:42

标签: javascript arrays 2d

我喜欢在javascript中以这种方式定义一个数组。如果有人可以帮助的话。让我们说我有一个学院,每个学院都会有一系列的价值观。我相信这不是二维数组的要求。

data
[,[]]
[0,[1,2]]
[1,[3,4]]

我需要像这样访问数据。

array[0], it should give 1,2 in an array
array[1], it should give 3,4 in an array

没有定义固定长度

[a,[b]]
[0,[1,2,3]]
[1,[3,4,5]]

我再次需要这样访问数据。

array[0], it should give 1,2,3 in an array
array[1], it should give 3,4,5 in an array

请帮助的人。 非常感谢

3 个答案:

答案 0 :(得分:0)

您可以这样定义

var arr = [ [1,2,3],[4,5,6]];
arr.map(key=>console.log(key);)// here key itself will be an array..Loop through that to get your individual values.

答案 1 :(得分:0)

您可以使用Map代替2d数组,每个 academy的号作为键,并将数组作为其值。您可以使用getset分别检索和更新特定键的值

const map = new Map([
                     [0, [1,2]],
                     [1, [3,4]],
                     [2, [1,2,3]],
                     [3, [3,4,5]]
                    ])

map.set(4, [10,20]) // to add a new value to map

console.log(map.get(1)) // to retrieve value, use "get"
console.log(map.get(3))

甚至一个对象都可以工作:

const obj = {
  0: [1, 2],
  1: [3, 4],
  2: [1, 2, 3],
  3: [3, 4, 5]
}

console.log(obj[0])
console.log(obj[2])

答案 2 :(得分:0)

如果您想循环执行此操作,请联系我们。去做吧。下面的这段代码是用来获取月份和日期的数组。

var month= ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
var day= ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
var daycounter = 0;
var arr = [];
for (var i = 0; i < 12; i++) {    // 12 for month in 1 year
    arr[month[i]]=[];
    // assump that avery month have 30 day and in 1st jan is sun
    for (var j = 0; j < 30; j++ , daycounter++) {
         daycounter = daycounter % 7;    // this for reset the day name to "sun" again
         arr[month[i]][j]= day[daycounter];
         console.log(arr[month[i]][j]+", "+ (j+1) + " " + month[i]);
    }
}

您可以根据需要进行改进