2015-03-14 2 views
0

У меня есть 2D-массив JavaScript;Индекс массива Javascript индекса

grid = [ [ a, b], 

     [ c, d]] 

Для доступа к его элементам я мог бы использовать;

grid[ i ] // that's [ a, b] or [ c, d] 

Как элемент вспомогательного массива, как я могу назвать только «а»?

Редактировать: Код на самом деле из сцены three.js, где каждый элемент представлен кубом i.e массив представляет собой сетку кубов.

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

grid [ i ], 

Каждая строка возвращает соответствующие элементы;

[ a, b ] or [ c, d]. 

Чтобы получить отдельные элементы каждой строки, я понял, что это должно быть;

grid [ i ][ j ], 

Но когда я побежал код, с этим он всегда возвращается «неопределенным», поэтому я думал, что синтаксис был неправ .... следовательно оригинальный пост.

Пожалуйста, что я делаю, чтобы получить верный результат?

+1

вы можете 'grid [0] [0]' – marsh

+0

Нет, это не так, я прочитал этот пост. – Taiwofolu

+0

Дайте нам достаточно кода, чтобы воспроизвести вашу проблему. Мы не можем угадать вашу ошибку здесь. –

ответ

0

В 2-D массив grid = [ [ a, b], [ c, d]] может быть доступ:

сетки [0] = [а, Ь]; сетка [0] [0] = a;

Если вы хотите, чтобы массив быть сброшена:

for(var i=0;i<grid.length;i++){ 
    for(var j=0;j<grid[i].length;j++){ 
     console.log('grid[' + i + '][' + j + '] = ' + grid[i][j]); 
    } 
} 

Выход будет:

сетки [0] [0] = а

сетки [0] [1] = б

сетки [1] [0] = C

сетки [1] [1] = й

+0

Я предполагаю, что сетка [i] [j] - это то, что я искал. К сожалению, по какой-то причине он всегда возвращает «undefined». – Taiwofolu

0

Самый простой способ

var grid = [ [ 1, 2], [ 3, 4]] 
var a = grid[0][0] // 1 
0

Индексы вашего многомерного индексированный массив выглядит следующим образом:

//grid = [ [ a, b], [ c, d]]; 
0: [ 
    0: a, 
    1: b 
], 
1: [ 
    0: c 
    1: b 
] 

Чтобы получить доступ к индексу массива сетки, вы выбираете их, вызвав grid[index] это возвращает массив в указанном индексе. Таким образом, при вызове var row = grid[0], row будет массивом с: [a, b].
К этому, в свою очередь, можно обращаться так же: row[0] будет a.

Для доступа без сохранения его между ними, вы бы просто использовать индексные скобки дважды:

var value = grid[0][0]; 
// value = a. 
var value2 = grid[1][0]; 
// value = c. 
+0

Я на самом деле пытаюсь получить индекс/значение строки, щелкнув элемент (это набор ящиков). Я думаю, что grid [i] [j] работал бы, но возвращает «undefined». Я должен что-то делать неправильно ... – Taiwofolu

+0

Если вы чувствуете, что ответ не был ответом на вопрос, ваш вопрос неясен. Кроме того, вы приняли ответ, который сказал почти то же самое, что и тот, который я написал, и тот, который написал @marsh, но ответил почти через двадцать минут после того, как был опубликован первый ответ. Если бы мы не правильно ответили на ваш вопрос, как правильно ответить (теперь правильно)? – Jite

+0

Кажется, что ваша проблема связана не с доступом к массиву javascripts, а с вопросом, а скорее с проблемой с вашим графическим интерфейсом. Или отредактируйте свой вопрос, чтобы мы могли фактически ответить, зная, в чем проблема, или принять ответ, который отвечает на данный вопрос (что все три текущих ответа). – Jite

Смежные вопросы