2017-02-06 10 views
0

Для моего модуля мне нужно объявить массив неизвестных размеров объектов, определенных пользователем, с двумя свойствами: datatype и FullName. Я хочу, чтобы эти свойства были равны нулю при создании.Как объявить неизвестный размер массива определенных пользователем объектов в скрипте java

Я пробовал приведенный ниже код.

var result = [{ dtype: null, fname: null, }];

Я получаю сообщение об ошибке: Uncaught TypeError: Невозможно установить свойство dtype undefined.

Любые мысли?

+0

'уаг Foo = [];' – Will

+0

Как я инициализировать свойства? – codingyo

+1

Нет воспроизведения. Вы, вероятно, не используете javascript, а что-то еще, может быть, машинопись? Откройте консоль javascript в любом браузере, в котором вы находитесь. Вставьте то, что вы добавили в свой вопрос. Тад. Работает. Ваша ошибка лежит в другом замке. – Will

ответ

1

Так Javascript не поддерживает определения или ограничения типов, которые входят в массив, и вы не должны указывать размер либо, вы можете просто продолжать добавлять эти объекты к нему изначально

Но если вы хотите чтобы ограничить типы, которые вошли в него, есть способ

function addThing(thing) { 
    if(thing.hasOwnProperty("fullName") && thing.hasOwnProperty("dataType")) { 
     array.push(thing); 
    } 
} 

https://jsfiddle.net/9sL920qt/

0

Применение логики Ноя с, я попытался это решение, которое работало для меня.

var result = []; 

Есть временный объект:

var resultItem = {}; 

установить значение объекта темпа.

resultItem.fname = resultsinJson.Data[i][keys]; 
resultItem.dtype = resultsinJson.Data[i][keys] ; 

, а затем добавить этот объект в конечном массиве

result[i] = resultItem;