首页 > 解决方案 > 动态创建多维javascript对象

问题描述

请我一直在努力从多个来源动态创建一个 javascript 多维对象,包括 3 个月的 PHP 数组和其他变量,如下所示:

我已经阅读了一些教程并编写了以下代码,但仍然出现错误:

 <script type='text/javascript'>
 var chart_data={};
 </script>



 @foreach($chart_data as $mth => $data)
        <script type="text/javascript">
            chart_data={'months':{"{{$month}}":"data":{!!json_encode($data['data'])!!}}};
            chart_data={'months':{"{{$month}}":'ykeys':{!!json_encode($data['ykeys'])!!}}};
            chart_data={'months':{"{{$month}}":'labels':{!!json_encode($data['labels'])!!}}};
            var chart_bar_colors={!!json_encode($chart_bar_colors)!!};
        </script>
        @endforeach

我在控制台中不断收到以下错误:

Uncaught SyntaxError: Unexpected token :

从开发人员工具检查源代码时,我还看到以下错误: Chrome 开发者工具中的源代码错误

我正在尝试构建一个 js 数据结构,如下所示:

chart_data['months']['Oct']['data']['some data here']
chart_data['months']['Oct']['ykeys']['some data here']
chart_data['months']['Oct']['labels']['some data here']
chart_data['months']['Nov']['data']['some data here']
chart_data['months']['Nov']['ykeys']['some data here']
chart_data['months']['Nov']['labels']['some data here']
chart_data['months']['Dec']['data']['some data here']
chart_data['months']['Dec']['ykeys']['some data here']
chart_data['months']['Dec']['labels']['some data here']

请我很感激任何解决这个问题的指南谢谢大家

标签: javascriptlaravel-5multidimensional-arrayjavascript-objects

解决方案


<script type='text/javascript'>
    var chart_data={
        'month' : {},
    };

    @foreach($chart_data as $mth => $data)

    chart_data.month['{{ $mth }}'] = {
        'data' : {!!json_encode($data['data'])!!} ,
        'ykeys' : {!!json_encode($data['ykeys'])!!} ,
        'labels' : {!!json_encode($data['labels'])!!} ,
    }

    @endforeach
</script>

推荐阅读