Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.10.2012, 19:59
Интересующийся
Отправить личное сообщение для stp008 Посмотреть профиль Найти все сообщения от stp008
 
Регистрация: 29.05.2012
Сообщений: 10

Многомерный массив
Здравствуйте. Мне нужно заполнить двумерный массив числами. Первый элемент это число от 0 до 50, а второй заполняется по формуле. Для простоты пускай первый будет равен i, а второй i+1. Формат, если что, нужен такой:data2 = [[0, 1], [1, 2], [2, 3], [3, 4],[4, 5],[5,6]]. Я просто строю график с помощью библиотеки flot,а синтаксис толком и не нашел для заполнения двумерного массива. Сделал так:
var d = [];
for (i=0; i<50; i++) {
d[i] = i;
for (j=0; j<50; j++){

d[i][j] = i+1;
};
};
    alert(d[1][2]);
.
Но выводит undefined. Подскажите, пожалуйста, как это нормально реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 27.10.2012, 20:06
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

d[i] = []
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #3 (permalink)  
Старый 27.10.2012, 20:40
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

var d = [];
for (i=0; i<50; i++) {
d[i] = [i, i+1];
};
Ответить с цитированием
  #4 (permalink)  
Старый 27.10.2012, 23:59
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

a_l,
push, не?
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2012, 01:49
Интересующийся
Отправить личное сообщение для stp008 Посмотреть профиль Найти все сообщения от stp008
 
Регистрация: 29.05.2012
Сообщений: 10

Спасибо за ответы, разобрался)
Ответить с цитированием
  #6 (permalink)  
Старый 28.10.2012, 11:10
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Nekromancer, гугл советует напрямую присваивать значения массиву там, где можно обойтись без push. Это быстрее.
Ответить с цитированием
  #7 (permalink)  
Старый 28.10.2012, 15:03
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Вот кот людей обманывает. Единтственный браузер, в котором это верно, это Opera, которую Google не поддерживает. Возможно и ИЕ, но я не верю в это (что там быстрее).
Что на самом деле быстрее, так это преалокация и последующее присвоение -- это быстрее во всех браузерах. В остальном, push быстрее так как это линейная операция, что то там.
Вот тест: http://jsperf.com/push-vs-assing-vs-...loc-and-assing
Даже в V8 всё не так, как написал Google. Только в SpiderMonkey от Mozilla бывают перепады настроения. То push быстрее, то pre-alloc, то при каких то условиях, на десятый раз теста и assing может быть быстрее.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многомерный массив javascript simple Общие вопросы Javascript 20 03.11.2010 02:11
ajax и многомерный массив cat9 AJAX и COMET 1 03.10.2010 15:25
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43