JavaScript — динамическое объединение значений со свойствами объекта — сначала не определено

У меня есть сгенерированный php код JavaScript, который динамически добавляет атрибуты и значения к объекту. Это выглядит примерно так:

 var javascriptObject = {};

<?php
foreach($events as $event)
echo 'javascriptObject[$event->date] += $event->title';
endforeach
?>

Поскольку у меня может быть несколько событий в одну и ту же дату, это добавит к одному и тому же свойству объекта, которое затем обрабатывается внешней библиотекой календаря. Теперь все работает отлично. НО, поскольку он добавляет новые данные с + =, первое «неопределенное» значение всегда остается в начале каждой записи.

Мой вопрос заключается в том, есть ли способ в Javascript инициализировать объект со значением по умолчанию (пустым или, возможно, нулевым), вместо того, чтобы оставить его «неопределенным»? Может кто-нибудь указать мне на лучшее решение?

ps: я бы действительно хотел избегать проверки ‘undefined’ в каждом цикле, чтобы сохранить код чистым, так как это сгенерированный php javascript, будет полным беспорядком, когда список событий большой.

0

Решение

Просто попробуйте с:

foreach ($events as $event) {
echo 'javascriptObject[' . $event->date . '] = (javascriptObject[' . $event->date . '] || "") + "' . $event->title . '";';
}

Или даже более безопасный способ:

$javascriptObject = array();
foreach ($events as $event) {
if ( !isset($javascriptObject[ $event->date ]) ) {
$javascriptObject[ $event->date ] = '';
}
$javascriptObject[ $event->date ] .= $event->title;
}

echo 'var javascriptObject = ' . json_encode($javascriptObject) . ';';
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]