Проблема 2-мерного массива в JavaScript - PullRequest
0 голосов
/ 03 мая 2019

Мне нравится иметь массив, определенный таким образом в JavaScript. Если кто-то может помочь, пожалуйста. Допустим, у меня есть академии, и у каждой академии будет множество ценностей. Я считаю, что это не требование к 2d массиву.

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 голосов
/ 03 мая 2019

Вместо двухмерного массива вы можете использовать Map с каждым номером академии в качестве ключа и массивом в качестве их значения. Вы можете использовать get и set для извлечения и обновления значений для определенного ключа соответственно

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])
0 голосов
/ 03 мая 2019

если вы хотите сделать это в цикле, это какой-то пример.сделать это.этот код ниже, чтобы получить массив месяц и день.

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]);
    }
}

Вы можете улучшить его в соответствии с тем, что вам нужно

0 голосов
/ 03 мая 2019

Вы можете определить так

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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...