Ваш код не работает, потому что RandomIndex
всегда одинаков, если он 7
, он вернет undefined
, поскольку splice
изменяет исходный массив, удаляя найденные House
,
RandomIndex
на функцию, вызываемую каждый раз, чтобы она генерировала новый индекс, используя новую длину массива:
var RandomIndex = () => Math.floor(Math.random() * HousesArray.length)
//Houses Array:
var HousesArray = [
'Stark',
'Lanister',
'Greyjoy',
'Barathion',
'Arryn',
'Tyrell',
'Martell',
'Targaryen'
];
//Houses Variables:
var house1 = {}
var house2 = {}
var house3 = {}
//Random House Generator
var RandomIndex = () => Math.floor(Math.random() * HousesArray.length)
var RandomElement = HousesArray[RandomIndex()]
//3 Players Generator:
house1 = RandomElement
console.log(house1)
HousesArray.splice(HousesArray.indexOf(house1), 1)
RandomElement = HousesArray[RandomIndex()]
house2 = RandomElement
console.log(house2)
HousesArray.splice(HousesArray.indexOf(house2), 1)
RandomElement = HousesArray[RandomIndex()]
house3 = RandomElement
console.log(house3)
Это метаданные на уровне источника. Это способ добавления информации в код, который не является кодом, и который легко обрабатывается машиной.
В вашем примере они используются для настройки объектно-реляционного отображения для этого типа сущности. Это говорит о том, что, например, поле id должно быть первичным ключом для этого объекта, а firstName, lastName и hireDate должны храниться в базе данных. (Чтобы отличить эти поля от некоторого переходного состояния объекта.)
Поддержка GAE для JDO должна знать, какие объекты вы попытаетесь сохранить в базе данных. Он делает это, просматривая классы в вашем коде, ища те, которые аннотированы с помощью @PersistenceCapable.
Обычно они используются для замены там, где вы ' раньше использовать внешние файлы конфигурации; стандартная библиотека Java имеет инструменты для чтения аннотаций в вашем коде, что значительно облегчает их обработку, чем развертывание вашего собственного файла конфигурации, и предоставляет вам бесплатную поддержку IDE.
Аннотации можно обрабатывать с помощью API инструмента обработки аннотаций , чтобы автоматически генерировать шаблонный код.
Я думаю, что они происходят из API Java Data Objects . Это API, который частично совпадает с тем, что EJB3 должен выполнить. Те же понятия, другой синтаксис и инструменты.
Если вы не знакомы с аннотациями в целом, посмотрите учебник по Java .