Javascript变量在obejct内不起作用。但是在console.log上

Javascript变量在obejct内不起作用。但是在console.log上,javascript,arrays,foreach,Javascript,Arrays,Foreach,Javascript变量在对象内部不起作用。当我console.log(dataPondsRevenue)变量时,我看到了数据,但得到了错误: SyntaxError:元素列表“”后缺少“] 当我在数据:[]节点中使用它时: $('.pondsRevenueBlock').on('click',function(){ var block_id = $(this).attr('data-id'); var url='{{ route('WhiteFish.client.pondsR

Javascript变量在对象内部不起作用。当我
console.log(dataPondsRevenue)
变量时,我看到了数据,但得到了错误:

SyntaxError:元素列表“”后缺少“]

当我在
数据:[]
节点中使用它时:

$('.pondsRevenueBlock').on('click',function(){
    var block_id = $(this).attr('data-id');
    var url='{{ route('WhiteFish.client.pondsRevenueBlockWise') }}';
    $.ajax({
        url:url+'?block_id='+block_id,
    }).done(function(pondsRevenueData){
        var dataPondsRevenue = '';
        $.each(pondsRevenueData, function(index, element) {
            dataPondsRevenue+= '{value:'+element.pondTotalInvest+',name:'+element.name+'},';
        });
        console.log(dataPondsRevenue);

        var eChart_2 = echarts.init(document.getElementById('pondsRevenue'));
        var option1 = {
            tooltip : {
                backgroundColor: 'rgba(33,33,33,1)',
                borderRadius:0,
                padding:10,
                axisPointer: {
                    type: 'cross',
                    label: {
                        backgroundColor: 'rgba(33,33,33,1)'
                    }
                },
                textStyle: {
                    color: '#fff',
                    fontStyle: 'normal',
                    fontWeight: 'normal',
                    fontFamily: "'Open Sans', sans-serif",
                    fontSize: 12
                }   
            },
            // color: ['#0FC5BB', '#92F2EF', '#D0F6F5'],
            color: ['#0FC5BB', '#0FC5BB', '#5AC4CC'],
            series : [
                {
                    name: 'task',
                    type: 'pie',
                    radius : '55%',
                    center: ['50%', '50%'],
                    roseType : 'radius',
                    tooltip : {
                        trigger: 'item',
                        formatter: "{a} <br/>{b} : {c} ({d}%)",
                        backgroundColor: 'rgba(33,33,33,1)',
                        borderRadius:0,
                        padding:10,
                        textStyle: {
                            color: '#fff',
                            fontStyle: 'normal',
                            fontWeight: 'normal',
                            fontFamily: "'Open Sans', sans-serif",
                            fontSize: 12
                        }   
                    },
                    data:[
                        console.log(dataPondsRevenue);
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        };
        eChart_2.setOption(option1);
        eChart_2.resize();
    }).fail(function (data) {
        console.log('error');
    });
});
$('.pondsRevenueBlock')。在('click',function()上{
var block_id=$(this.attr('data-id');
var url={{route('WhiteFish.client.pondsRevenueBlockWise')};
$.ajax({
url:url+'?块id='+块id,
}).done(函数(pondsRevenueData){
var dataPondsRevenue='';
$.each(pondsRevenueData,函数(索引,元素){
dataPondsRevenue+='{value:'+element.pondTotalInvest+',名称:'+element.name+'}';
});
console.log(dataPondsRevenue);
var eChart_2=eChart.init(document.getElementById('pondsRevenue');
变量选项1={
工具提示:{
背景颜色:“rgba(33,33,33,1)”,
边界半径:0,
填充:10,
轴指针:{
类型:'交叉',
标签:{
背景颜色:“rgba(33,33,33,1)”
}
},
文本样式:{
颜色:“#fff”,
fontStyle:'正常',
fontWeight:'正常',
fontFamily:“开放式无衬线”,无衬线,
字体大小:12
}   
},
//颜色:['0FC5BB','92F2EF','D0F6F5'],
颜色:['0FC5BB'、'0FC5BB'、'5AC4CC'],
系列:[
{
名称:“任务”,
键入“pie”,
半径:“55%”,
中心:['50%,'50%'],
玫瑰型:“半径”,
工具提示:{
触发器:'item',
格式化程序:“{a}
{b}:{c}({d}%)”, 背景颜色:“rgba(33,33,33,1)”, 边界半径:0, 填充:10, 文本样式:{ 颜色:“#fff”, fontStyle:'正常', fontWeight:'正常', fontFamily:“开放式无衬线”,无衬线, 字体大小:12 } }, 数据:[ console.log(dataPondsRevenue); ], 项目样式:{ 重点:{ 阴影模糊:10, 阴影偏移量:0, 阴影颜色:“rgba(0,0,0,0.5)” } } } ] }; eChart_2.设置选项(选项1); eChart_2.调整大小(); }).失败(功能(数据){ console.log('error'); }); });

如何解决它?

这是因为
console.log(dataPondsRevenue)
是一个返回
未定义的
的函数,所以

data: [ console.log(dataPondsRevenue) ]
意味着

data: [ undefined ]
你应该这样做

data: [ dataPondsRevenue ]

这是因为
console.log(dataPondsRevenue)
是一个返回
未定义的
的函数,所以

data: [ console.log(dataPondsRevenue) ]
意味着

data: [ undefined ]
你应该这样做

data: [ dataPondsRevenue ]
将实际数据放入数组。

使用数组(并且可以选择
JSON.stringify
它;如果是
$.ajax
,请查看),它不太容易出错-在您的情况下,结尾总是有一个逗号,这不是有效的JSON:

console.log(“有效:”)
log(JSON.parse('{“whatever”:1}'))
console.log(“无效:”)
console.log(JSON.parse(“{”whatever“:1,}”)
使用一个数组(并且可以选择
JSON.stringify
它;对于
$.ajax
,请看一看),它不太容易出错-在您的例子中,结尾总是有一个逗号,它不是有效的JSON:

console.log(“有效:”)
log(JSON.parse('{“whatever”:1}'))
console.log(“无效:”)

console.log(JSON.parse(“{”whatever“:1,}”)
关于如何创建所需的数据对象,似乎存在相当大的混乱。使用代码

$.each(pondsRevenueData, function(index, element) {
    dataPondsRevenue+= '{value:'+element.pondTotalInvest+',name:'+element.name+'},';
});

您正在创建一个JSON字符串。可以使用
JSON.parse()
将其解析为一个对象,但这似乎是不必要的,因为您可以创建所需的对象数组来开始:

var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
    dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});
var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
   dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});
然后,只需将
dataPondsRevenue
分配给
data

...
},
data: dataPondsRevenue,
itemStyle:
...

对于如何创建所需的数据对象,似乎存在相当大的混乱。使用代码

$.each(pondsRevenueData, function(index, element) {
    dataPondsRevenue+= '{value:'+element.pondTotalInvest+',name:'+element.name+'},';
});

您正在创建一个JSON字符串。可以使用
JSON.parse()
将其解析为一个对象,但这似乎是不必要的,因为您可以创建所需的对象数组来开始:

var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
    dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});
var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
   dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});
然后,只需将
dataPondsRevenue
分配给
data

...
},
data: dataPondsRevenue,
itemStyle:
...

您正在创建一个JSON字符串。可以使用JSON.parse()将其解析为一个对象,但这似乎不必要,因为您可以创建所需的对象数组来开始:

var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
    dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});
var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
   dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});

您正在创建一个JSON字符串。可以使用JSON.parse()将其解析为一个对象,但这似乎不必要,因为您可以创建所需的对象数组来开始:

var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
    dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});
var dataPondsRevenue = [];
$.each(pondsRevenueData, function(index, element) {
   dataPondsRevenue.push({value: element.pondTotalInvest, name: element.name});
});

您不能有
console.log(dataPondsRevenue)内部文字数组声明(
[]
)。只有用逗号分隔的值。从技术上讲,他可以,它只返回未定义的
!是的,但是冒号在结尾仍然是一个语法错误。@marekful我必须在这个数组中加载数据。我怎么能这样做<代码>$。每个
也不在此阵列内工作[]您正在数据内使用console.log(dataPondsRevenue)。您可以使用[]符号声明数组,但在数组内部使用“;”受骗后