将值动态合并到对象属性 - 第一个是未定义的
Dynamically merging values to object properties - first is undefined
我有一个php生成的javascript代码,它可以动态地向对象添加属性和值。它看起来像这样:
var javascriptObject = {};
<?php
foreach($events as $event)
echo 'javascriptObject[$event->date] += $event->title';
endforeach
?>
由于我可能在同一日期有多个事件,因此它会添加到同一对象属性中,然后由外部日历库处理。现在,一切正常。但是,由于它添加了带有 += 的新数据,因此第一个"未定义"值始终保留在每个条目的开头。
我的问题是,Javascript中有没有办法用默认(空或空(值初始化对象,而不是让它"未定义"?有人可以指出我更好的解决方案吗?
ps:我真的很想避免在每个循环中检查"undefined"以保持代码干净,因为它是 php 生成的 javascript,当事件列表很大时会一团糟。
试试:
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) . ';';
相关文章:
- 使用+=运算符未定义对象中的第一个元素
- HTML5音频标签没有播放声音的铬和safari中的第一个未聚焦标签
- 无法读取属性'用户名'对于Angular Post Request,共个未定义
- fn.apply 与第一个参数 null 或未定义
- 自定义打印功能,打印内容未显示在第一个事件触发器上
- 将值动态合并到对象属性 - 第一个是未定义的
- 函数的第一个返回值未定义
- Firebase.update失败:第一个参数在属性中包含未定义的参数
- 无法读取属性'oScroll'个未定义的-jQuery DataTables
- 如果第一个表单名称返回时未定义,如何测试第二个表单名称
- 数组javascript中未定义的第一个元素
- jsLint错误“;无法设置属性'第一'“未定义”;
- 第一个值返回“0”;未定义的“;当使用以下内容进行解析时
- if语句中的函数仅在第一次未定义,但在休息时间函数调用也是如此
- 在一条语句中获取多个未定义对象中的初始化对象
- 2个未定义变量的结果类型
- 如何摆脱第一个未定义
- 使用下划线比较两个未定义值的对象
- 如何用javascript求和多个(未定义的数字)文本框的数量
- Javascript错误:无法读取属性'txtAlias'个,共个未定义http://localhost