如何在JavaScript中的单个键中插入多个值

时间:2018-08-04 05:08:27

标签: javascript php arrays object

我有一个对象数组var codropsEvents={[date1]:['event1'],[date2]:['event2'}; 我想向event1插入多个值,即{[date1]:['event1','event2'],..} 我使用以下代码

<?php 
    $da=[];
    $qry="select * from events";
    $ex=mysqli_query($con,$qry);
    while($row=mysqli_fetch_assoc($ex))
    {
        $timestamp = strtotime($row['date']);
        $date= date('m-d-Y', $timestamp);
        $event=$row['event'];
        $da[]=$date;

        $eve[]=$event;


    }
    ?>
<script type="text/javascript">
        var a=<?php echo(json_encode($da)); ?>;
        var ev=  <?php echo(json_encode($eve)); ?>;
        var codropsEvents ={};
        for(var i=0;i<a.length;i++)
        {

            codropsEvents[a[i]] = '<span>'+[ev[i]]+'</span>';

        }

        </script>

但是使用这段代码,我得到了类似的东西,

var codropsEvents={[date1]:[event1],[date1]:[event2]}

但是我需要一个键中所有具有相同日期的事件为{[date1]:['event1','event2',..],[date2]:[''event3','event4'..],..};

请任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

您需要检查对象中是否存在,如果没有使用空数组对其进行初始化。然后将元素推入数组。

<script type="text/javascript">
    var a=<?php echo(json_encode($da)); ?>;
    var ev=  <?php echo(json_encode($eve)); ?>;
    var codropsEvents ={};
    for(var i=0;i<a.length;i++)
    {

        if (!codropsEvents[a[i]]) {
            codropsEvents[a[i]] = [];
        }
        codropsEvents[a[i]].push('<span>'+[ev[i]]+'</span>');

    }

</script>