Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как создать многомерный пустой или как не создавать. (https://javascript.ru/forum/misc/30365-kak-sozdat-mnogomernyjj-pustojj-ili-kak-ne-sozdavat.html)

PashPP 02.08.2012 00:30

Как создать многомерный пустой или как не создавать.
 
В общем, задача такова. Надо загружать некоторое количество текстовых строк с возможностью их комбинаций.
Ну, если точно, то я хочу сделать текстовый квест и не знаю как и где хранить варианты ответов.
Предположил, что можно загонять их в двухмерный масив и потом более-менее удобно дергать. Позиция в квесте вторая - дергаем второй подмасив и грузим с него варианты ответов. Не знаю, насколько удачный я выбрал способ. Какие ограничения?
И собственно вопрос, как создать пустой многомерный масив?
var matrix = [[]]
matrix[3][3]= "d"
alert(matrix[3][3])

И другие комбинации скобочек не работают. Гугл молчит.

shkoder 02.08.2012 00:48

...как и где хранить варианты ответов...
а чем такой способ не устраивает?
var questions = [
    {
        question : 'Это ваш вопрос?',
        answers : [
            'да',
            'нет',
            'не уверен',
            'все ответы являются верными'
        ]
    },
    {
        question : 'Вашими мыслями кто-то управляет?',
        answers : [
            'да',
            'нет',
            'не уверен',
            'бывает и такое'
        ]
    }
];
    
console.log(questions[0].question);
console.log(questions[0].answers[1]);

PashPP 02.08.2012 00:53

shkoder,
Тем, что не подумал о нем до. Спасибо.

PashPP 02.08.2012 11:05

Хм. Еще один вопрос, как можно спрятать в этот массив значения так, чтобы они брались только при его вызове.
Например
var d= 0
var questions = [
    {
        question : 'Это ваш вопрос?',
        answers : [
            'да',
            'нет',
            'не уверен',
            'все ответы являются верными'
        ]
    },
    {
        question : 'Вашими мыслями кто-то управляет?',
        answers : [
            'да',
            'нет',
            'не уверен',
            d=3
        ]
    }
];
    
console.log(d);

Как сделать, чтоб значени я из под масива не присваивались до того. как я я вно его вызову questions[1]answers[3] ?
Загонять под функцию function(){d=3}? Как-то криво получается.

Deff 02.08.2012 11:51

PashPP,
function ReadMyArray(a,b){
var questions = [
    {
        question : 'Это ваш вопрос?',
        answers : [
            'да',
            'нет',
            'не уверен',
            'все ответы являются верными'
        ]
    },
    {
        question : 'Вашими мыслями кто-то управляет?',
        answers : [
            'да',
            'нет',
            'не уверен'
        ]
    }
];

 if(typeof(questions[a].answers[b])=='undefined')return false;
 return(questions[a].answers[b]);
}
alert (ReadMyArray(0,8))
alert(ReadMyArray(0,3))

oneguy 02.08.2012 18:13

Цитата:

Сообщение от PashPP
Как сделать, чтоб значени я из под масива не присваивались до того. как я я вно его вызову questions[1]answers[3] ?
Загонять под функцию function(){d=3}? Как-то криво получается.

Извините, я не понял, что означает "значения из под массива не присваивались"? При выполнении какой инструкции?

PashPP 02.08.2012 21:49

oneguy,
Эм. Ну, то есть, чтоб b глобальная не менялась просто так. если в массиве есть b= 3, например.
Но уже не важно. Спасибо всем.


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