Ajax自动在成功调用中返回的变量数据周围加双引号

T我正在尝试在MVC应用程序中使用Ajax构建chartjs水平条形图。每次数据返回时,它都会在变量返回的数据周围加上双引号。

My code:

**<script>
    $("#charts").click(function () {

            $.ajax({
                type: "POST",
                url: rootDir + "Usd/provStDtAll",
                dataType: 'json',
                async: false,
                cache: false,
                timeout: 30000,
                data: {},
                success: function (adata) {
                    var sDate = '';
                    var ooSum = '';
                    var bgC = '';
                    for (var i = 0; i < adata.length; i++) {
                        sDate += '"' + adata[i].startDate + '",';
                        ooSum += adata[i].oSum + ',';
                        bgC += '"' + adata[i].bgcolor + '",';

                    }

                    console.log(sDate);
                    console.log(ooSum);
                    console.log(bgC);
                    
                    var ctx = document.getElementById('psdChart').getContext('2d');
                    var chart1 = new Chart(ctx, {
                        type: 'horizontalBar',
                        data: {
                            labels: [sDate],
                            datasets: [
                                {
                                    label: 'Start Date',
                                    backgroundColor: [bgC],
                                    data: [ooSum]
                                }
                            ]
                        },
                        options: {
                            responsive: true,
                            scales: {
                                yAxes: [{
                                    display: true,
                                    ticks: { beginAtZero: true }
                                }],
                                xAxes: [{
                                    display: true,
                                    ticks: { beginAtZero: true }
                                }]
                            },
                            legend: { display: false },
                            title: {
                                display: true,
                                text: 'Providers by Start Date'
                            }
                        }
                    });

                    chart1.render();        

                }
            });
    
    });
</script>**

具体来说,“sDate”、“bgC”和“ooSum”的变量都用双引号括起来。结果如下:

**sDate = ""Nov 2020","Mar 2021","Jan 2021","Feb 2021","Dec 2020","Apr 2021","
bgC = ""#00437d","#00437d","#00437d","#00437d","#00437d","#00437d","
ooSum = "1,57,18,26,1,9,"**

这会导致图表无法正确呈现,因为所有数据都用引号括起来。

我想让变量返回这样的值。。。

**sDate = "Nov 2020","Mar 2021","Jan 2021","Feb 2021","Dec 2020","Apr 2021",
bgC = "#00437d","#00437d","#00437d","#00437d","#00437d","#00437d",
ooSum = 1,57,18,26,1,9,**

console.log(adata)返回以下内容。

Array(6)
0: {startDate: "Nov 2020", oSum: 1, bgcolor: "#00437d"}
1: {startDate: "Mar 2021", oSum: 57, bgcolor: "#00437d"}
2: {startDate: "Jan 2021", oSum: 18, bgcolor: "#00437d"}
3: {startDate: "Feb 2021", oSum: 26, bgcolor: "#00437d"}
4: {startDate: "Dec 2020", oSum: 1, bgcolor: "#00437d"}
5: {startDate: "Apr 2021", oSum: 9, bgcolor: "#00437d"}
length: 6

基于你的代码,我认为你需要为你的变量定义数组而不是字符串。例子:

                var sDate = [];
                var ooSum = [];
                var bgC = [];
                for (var i = 0; i < adata.length; i++) {
                    sDate.push(adata[i].startDate);
                    ooSum.push(adata[i].oSum);
                    bgC.push(adata[i].bgcolor);

                }
                    data: {
                        labels: sDate,
                        datasets: [
                            {
                                label: 'Start Date',
                                backgroundColor: bgC,
                                data: ooSum
                            }
                        ]
                    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值