Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 13.02.2014, 15:33
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

Сообщение от dima*** Посмотреть сообщение
А четвёртый где,массив указателей?Как его найти?
жжёшь))) честно говоря я не знаю как показать еще. видимо программистами рождаются, массивы должны быть у тебя в крови))
Ответить с цитированием
  #22 (permalink)  
Старый 13.02.2014, 15:35
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а что у тебя должно вывалить когда ты обращаешься к a[3] или a[4]?? какой результат ты хотел получить?
Ответить с цитированием
  #23 (permalink)  
Старый 13.02.2014, 19:30
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

массив указателей это и есть а=[]?

Последний раз редактировалось dima***, 13.02.2014 в 19:39.
Ответить с цитированием
  #24 (permalink)  
Старый 13.02.2014, 19:42
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

a[3] или a[4]-думал увидеть undefined.Мучает вопрос-почему "четвёртый"?
Ответить с цитированием
  #25 (permalink)  
Старый 13.02.2014, 19:59
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

Сообщение от dima*** Посмотреть сообщение
массив указателей это и есть а=[]?
да.

var a1 = [1, 2]; //это 1ый ОДНОМЕРНЫЙ массив
var a2 = [3, 4]; //это 2ой ОДНОМЕРНЫЙ массив
var a3 = [5, 6]; //это 3ий ОДНОМЕРНЫЙ массив
var a4 = [a1, a2, a3]; //это 4ый ОДНОМЕРНЫЙ массив. содержит ссылки на 1, 2 и 3 ОДНОМЕРНЫЙ массив

вот это все, равносильно тому что ты писал:
var a4 = [[1,2], [3,4], [5,6]]; //т.е. это "сложный" массив

а выше я тебе его же разбил на "простые" массивы
Ответить с цитированием
  #26 (permalink)  
Старый 13.02.2014, 20:00
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от dima*** Посмотреть сообщение
Разница в чём,опять не понятно?
Многомерный массив - это удобная абстракция, т.е. внутри реализации это всё тот же одномерный один массив, а массив массивов - это такой массив, элементами которого являются другие массивы.

Массивы массивов более гибкие, т.к. не накладывают ограничений на длину вложенных массивов:

[
  [1, 2] // вложенный массив с 2-мя элементами,
  [1] // вложенный массив с 1-м элементом
]


При реализации многомерного массива мы сразу декларируем, что размер вложенных масcивов должен быть равен n, где n некоторое целое число, т.е. получается меньше гибкости, но зато работает быстрее.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 13.02.2014 в 20:47.
Ответить с цитированием
  #27 (permalink)  
Старый 13.02.2014, 20:53
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Ага,я так и понимал.Просто,смутило-"четвёртый".Ладно,здесь понятно.Я,думал,что не так уже.

kobezzza,понял!Длина массива, вот в чём дело!

p.s.:у меня в школе не было программирования!Изучал яваскрипт самостоятельно по Дунаеву.Первый язык программирования.Бейсик и С++ не изучал.Поэтому ,наверное,и не понимаю простые вещи.
Ответить с цитированием
  #28 (permalink)  
Старый 13.02.2014, 21:15
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от dima***
Разница в чём,опять не понятно?
Сообщение от kobezzza
Многомерный массив - это удобная абстракция, т.е. внутри реализации это всё тот же одномерный один массив, а массив массивов - это такой массив, элементами которого являются другие массивы.

Массивы массивов более гибкие, т.к. не накладывают ограничений на длину вложенных массивов

dima***,
Поскольку ты новичок, я думаю, тут не помешает разжевать и дополнить ответ kobezzza для ясности.

Понятие массива в программировании не всегда задано однозначно. В общем случае так называется объект, объединяющий некоторое множество других, доступных каждый напрямую по своему индексу. При этом организация внутренней механики, ограничения на тип хранимых внутри объектов и дополнительный функционал опускаются для упрощения - обычно все тонкости понятны из контекста.

В JS массивом изначально считается встроенный тип объектов, который допускает произвольную манипуляцию набором данных: они могут быть любого типа, их можно добавлять и удалять как угодно, а сам размер ограничен только самим движком JS.

В других языках, приложениях и всевозможных абстрактных и предметно-ориентированных моделях точное определение может быть другим. Например, в C/C++ массив это ничто иное, как цельный блок памяти, который интерпретируется как неразрывная последовательность элементов одного и того же типа и размера. Там мы не можем просто так взять и вырезать какой-то элемент, чтобы дырка между соседями свернулась сама собой: для этого пришлось быть передвинуть весь хвост справа на позицию назад, а это могут быть мега- и гигабайты памяти! Такие простые структуры непосредственно используются, как правило, только для данных фиксированной длины с жесткой привязкой к индексу.

Так вот, когда говорят о многомерных массивах, часто подразумеваются именно такие. Дело в том, что одномерный массив как линейный блок памяти легко превращается в многомерный, если применить к функции индекса простые арифметические преобразования. Это имеет смысл, так как доступ к данным происходит максимально быстро, а поддержание объекта в действии не накладывает никаких неявных издержек в виде сложных вычислений или дополнительной памяти.

Например, нужен массив [5][6][7]. Объем его одномерного аналога будет 5*6*7 = 210 элементов. Можно однозначно сопоставить вариации трех координат одному диапазону чисел. Если наша иерархия индексов [x][y][z], то преобразование к одномерному виду будет i = (x*6 + y)*7 + z.

И хотя в JS обычные массивы позволяют работать с ними КАК с многомерными, внутренняя их топология все же остается свободной для изменений. В связи с этим иногда возникает путаница в толковании.

Тем не менее, уже несколько лет как в оборот введены Typed Arrays, являющиеся примером простого, но жесткого варианта. Однако типы их содержимого на данный момент ограничены только числовыми.
__________________

Гейзенберг, возможно, читал этот тред.

Последний раз редактировалось Дзен-трансгуманист, 13.02.2014 в 22:02.
Ответить с цитированием
  #29 (permalink)  
Старый 13.02.2014, 21:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Дзен-трансгуманист
i = (x*6 + y)*7 + z
i должно быть в данном случае от 0 до 210 или я что-то непонимаю? откуда формула?
Ответить с цитированием
  #30 (permalink)  
Старый 13.02.2014, 21:37
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от рони
i должно быть в данном случае от 0 до 210
до 209
var i=[];
for (var x=0; x<5; x++) for (var y=0; y<6; y++) for (var z=0; z<7; z++) i.push((x*6 + y)*7 + z);
console.log(i.join(', '));
__________________

Гейзенберг, возможно, читал этот тред.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из одного массива удалить элементы другого... t3mir1an Events/DOM/Window 4 22.10.2013 11:14
Не могу выбрать и удалить клонируемые элементы AlexPrm jQuery 6 30.05.2010 15:58
Пустые элементы массива lammeR Общие вопросы Javascript 5 25.05.2010 02:59
Как удалить повторные элементы из массива? YISHIMITSY Общие вопросы Javascript 1 04.05.2010 00:04
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03