Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как создать многомерную матрицу????? (https://javascript.ru/forum/misc/24912-kak-sozdat-mnogomernuyu-matricu.html)

Даша Соколова 18.01.2012 19:13

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

var border = Matrix(8,8)


возвращает двумерную матрицу 8 на 8
а если передать

Matrix(2,8,8,8,8)
создаст пятимерную матрицу 2 на 8 на 8 на 8 на 8

B@rmaley.e><e 18.01.2012 19:22

Взять и написать. Интересуют конкретные ответы — задавайте конкретные вопросы.

Даша Соколова 18.01.2012 19:29

Цитата:

Сообщение от B@rmaley.e><e
Взять и написать.

Очевидно что мой вопрос подразумевает ввиду. И если для тебя это не очевидно, то у меня для тебя плохие новости.
На всякий случай задам конкретный вопрос чтобы и тебе было очевидно: Как конкретно создать функцию возвращающую многомерные матрицы? А если точнее , то какие буквы написать в теле этой функции? Перечислите пожалуйста набор букв которые я должна туда вписать, либо назовите порядок действий, а буквы для вписывания я сама подберу.

nerv_ 18.01.2012 19:36

Даша Соколова, я не заметил, чтобы B@rmaley.e><e обращался к Вам на "ты".
Цитата:

Сообщение от Даша Соколова
какие буквы написать в теле этой функции? Перечислите пожалуйста набор букв которые я должна туда вписать, либо назовите порядок действий, а буквы для вписывания я сама подберу.

Изучить javascript. Начать можно здесь.

Даша Соколова 18.01.2012 19:41

Цитата:

Сообщение от nerv_
Изучить javascript. Начать можно здесь.

При чем тут изучение javascript? Мне нужен способ создать функцию возвращающую многомерные матрицы. И я думала в этом топике будут отписываться те, кто имеет желание мне помочь. А пока тут одни тролли и кэпы. И я обратилась к вам за помощью, вы намеренно притворяетесь ненормальными или трудно признать что не можете?
Лично я не могу, потому что выразительность языка не позволяет мне это сделать.

B@rmaley.e><e 18.01.2012 19:47

Цитата:

Сообщение от Даша Соколова
Лично я не могу, потому что выразительность языка не позволяет мне это сделать.

Как я уже говорил, задаёте конкретные вопросы — получаете конкретные ответы.
Цитата:

Сообщение от Даша Соколова
вы намеренно притворяетесь ненормальными или трудно признать что не можете?

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

Даша Соколова 18.01.2012 19:57

Да знаю я про ваше "Пишите код мы покажем ошибку"
Ну хорошо. Пришлю вам вопрос конкретный:
Функции рисующие матрицы я сделать могу , выразительность языка это позволяет(цикл в цикле), но функцию делающую матрицы с произвольным порядком выразительность языка не позволяет.

было предпринято 2 попытки, первая:

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

Вторая попытка это наполнять матрицу с конца, то есть с самых дочерних её элементов, Засовывая и размножая их по родительским. Ну и естественно создавая родительские. Но выразительность языка не позволила сделать и это.

B@rmaley.e><e 18.01.2012 20:02

Цитата:

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

Что Вы имеете в виду?
var a = {b : {c : {d : 5}}};
var t = a.b.c;
alert(a.b.c.d);
t.d = 10;
alert(a.b.c.d);


Цитата:

Сообщение от Даша Соколова
Но выразительность языка не позволила сделать и это.

Это не очень конкретно.

Даша Соколова 18.01.2012 20:05

Цитата:

Сообщение от B@rmaley.e><e
Что Вы имеете в виду?

Попробуйте ради развлечения создать то что я попросила, для себя, и поймете в чем дело. Нужно определенное количество раз делать

[][][][] и сколько вот таких доступов должно быть (в данном случае 4) должно определяться числом. такого нет.

B@rmaley.e><e 18.01.2012 20:25

var n = +prompt('Сколько?', 13), a = [];
for (var i = 0, t = a; i < n; ++i) t = t[0] = [];
alert(JSON.stringify(a))
Для реализации Вашей задачи не хватает только стека, с помощью которого можно было бы возвращаться на верхние уровни. А стек и возвраты — это как раз про рекурсию. Проще всего сделать рекурсивный вариант. И, да, я его сделал. И мне хватило выразительности языка.


Часовой пояс GMT +3, время: 01:08.