Как это возможно, у нас есть связная матрица с кодом ниже? - PullRequest
0 голосов
/ 22 апреля 2019

Автор говорит: Массив хранит свое содержимое в одном массиве элементов width × height.Элементы хранятся построчно, поэтому, например, третий элемент в пятой строке (с использованием индексации на основе нуля) хранится в позиции 4 × ширина + 2. Проблема в том, как можно получить связный массив, еслискажем, ширина равна 5, когда индекс никогда не достигнет нуля 2 из-за уравнения в квадратных скобках;

   let content = [];
   function element(x,y){return undefined;}

for (let y = 0; y < height; y++) {
  for (let x = 0; x < width; x++) {
    content[y * width + x] = element(x, y);
  }
}

1 Ответ

1 голос
/ 22 апреля 2019

Привет, я не уверен, что правильно понял ваш вопрос, но я пытаюсь объяснить вам код, который вы написали.

Как вы написали, код представляет двумерную матрицу в виде одномерного массива. Поэтому, если мы хотим создать матрицу 3 x 2, которая будет выглядеть следующим образом (логично)

undefinded0, undefinded1
undefinded2, undefinded3
undefinded4, undefinded5

(я набрал номер, чтобы было легче думать) если мы используем вашу функцию, представление будет выглядеть так:

[undefined0, undefined1, undefined2, undefined3, undefined4, undefined5] 

проблема в том, как можно получить связный массив, если, скажем, ширина равна 5, когда индекс никогда не достигнет 2, из-за уравнения в квадратных скобках

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

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

Каждая строка (даже пятая) будет иметь элемент с индексом 2. Это представление выше имеет два измерения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...