2016-12-02 4 views
-1

У меня проблема.Массив Javascript не распознан

Я следующий массив Javascript создан:

<script type="text/javascript"> 
     ArrayName['FirstValue']['SecondValue'] = { 
     name = 'checbox_id' 
     checked = true } 
    </script> 

Но когда я называю глобальный массив в функции здесь является пример вызов:

ArrayName[value1][value2] = true; 

Я получаю сообщения о том, что ArrayName не определено.

Каков правильный способ создания массива, аналогичного приведенному выше?

Спасибо, Кевин Дэвис

+4

Ну, где * is * 'ArrayName' определен? – Gavin

+0

Начнем с: «Почему вы хотите иметь глобальный массив?» – Makoto

+0

Причина Я хочу использовать его снова ... –

ответ

2

Вы пытаетесь установить элемент в массиве с именем ArrayName, который не объявлен в любом месте.

<script type="text/javascript"> 
    // You are attempting to access an array but it hasn't been declared: 
    ArrayName['FirstValue']['SecondValue'] = { 
    name = 'checbox_id' 
    checked = true } 
</script> 

Синтаксис указывает на то, что это массив, который содержит вложенные массивы, как это:

var ArrayName = [[1,2,3], [4,5,6], [7,8,9]]; 

Итак, если вы хотите, чтобы получить номер 8, вам нужно получить доступ к третьему массива элемент и получить второе найденное значение в массиве хранится там:

// Remember, array indexes start counting from zero 
ArrayName[2][1]; // Get the third element's, second item 

Или (если мы возьмем ваш пример буквально, где вы ищете текстовые строки, которые не являются положительными целыми числами), ArrayName не будет массивом, это будет объект, к которому вы пытаетесь получить доступ к свойству FirstValue, и это свойство затем сохраняет другой объект в качестве его значения и этот объект имеет свойство, называемое SecondValue. Эта структура будет выглядеть следующим образом:

var ArrayName = { 
    'FirstValue' : { 'SecondValue' : something; } 
} 

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

Далее, мы должны говорить о предмете, который вы пытаетесь присвоить массив:

{ 
     name = 'checbox_id' 
     checked = true 
} 

Этот синтаксис является неправильным. Это должно быть:

{ 
     name : 'checbox_id', 
     checked : true 
} 
+0

'ArrayName = ['FirstValue'] ['SecondValue'] = {};' не делает то, что, по вашему мнению, делает. –

+4

Поскольку код на самом деле: 'ArrayName ['FirstValue'] ['SecondValue'] = { name = 'checbox_id' checked = true}' Я думаю, что так оно и есть. –

Смежные вопросы