Четверг, 21 Ноября 2024, 20:19

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Javascript Массивы
SkorpyXДата: Воскресенье, 22 Сентября 2013, 01:25 | Сообщение # 1
участник
Сейчас нет на сайте
Здравствуйте! Недавно начал изучать javascript, и не могу разобраться с одной вещью...
Решил попробовать создать инвентарь. До этого делал игры на Game Maker 8 и там бы я написал так:
Код

inv[0,0].name='knife';
inv[0,0].count=10;

Как правильно это сделать в javascript?
Так:
Код

inv = [ [ [ ] ] ];
inv[0][0]['name']='knife';
inv[0][0]['count']='10';

Или так:
Код

inv = [ [ { } ] ];
inv[0][0]['name']='knife';
inv[0][0]['count']='10';

(Разница в скобках)
Просто разобраться не могу, вроде бы работает в обоих случаях @_@ Помогите!


Сообщение отредактировал SkorpyX - Воскресенье, 22 Сентября 2013, 12:16
uberchelДата: Воскресенье, 22 Сентября 2013, 20:07 | Сообщение # 2
частый гость
Сейчас нет на сайте
Первый вариант правильный, хотя и второй пойдет, просто фигурные скобки пользуются для хранения объектов и функция в основном.

// скоро тут что нибудь появится )
MrNeshДата: Воскресенье, 22 Сентября 2013, 20:30 | Сообщение # 3
Воин добра и света
Сейчас нет на сайте
uberchel, прав




Сообщение отредактировал jiumx60rus - Воскресенье, 22 Сентября 2013, 20:42
AGENTX001Дата: Воскресенье, 22 Сентября 2013, 20:56 | Сообщение # 4
почётный гцупер
Сейчас нет на сайте
SkorpyX, оба варианты не правильны.
Код

var inv = [];
for (var x = 0; x < max_width; x++) {
   inv[x] = [];
   for (var y = 0; x < max_height; y++) {
     inv[x][y] = {};
   }
}

Использовать это можно так:
Код

inv[0][0]['name']='knife';  
inv[0][0]['count']='10'; //зачем кавычки?  

И так:
Код

inv[0][0].name='knife';  
inv[0][0].count=10;  

{ } инициирует ассоциативный массив

Добавлено (22.09.2013, 20:56)
---------------------------------------------
jiumx60rus, твой код требует предварительного определения каждой ячейки, в дальнейшим это может привести к ошибки в время попытки использования еще не инициированной переменной. В данном случае это вероятно не актуально, но вообще секир башка за такой код.

SkorpyXДата: Воскресенье, 22 Сентября 2013, 21:06 | Сообщение # 5
участник
Сейчас нет на сайте
Всем спасибо за ответы)
Данный способ не работает:
Код

inv[0][0].name='knife';   
inv[0][0].count=10;  

Зато работает этот: =)
Код

inv[0][0]['name']='knife';   
inv[0][0]['count']='10'; //зачем кавычки?   

Кавычки нечаянно поставил)
MrNeshДата: Воскресенье, 22 Сентября 2013, 21:08 | Сообщение # 6
Воин добра и света
Сейчас нет на сайте
Цитата (AGENTX001)
jiumx60rus, твой код требует предварительного определения каждой ячейки, в дальнейшим это может привести к ошибки в время попытки использования еще не инициированной переменной. В данном случае это вероятно не актуально, но вообще секир башка за такой код.

Да я чуть-чуть лоханулся(слушал доклад по CoffeeScript biggrin )




Сообщение отредактировал jiumx60rus - Воскресенье, 22 Сентября 2013, 21:17
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг