Javascript &引用;给出的行大小不同于3“;谷歌图表

Javascript &引用;给出的行大小不同于3“;谷歌图表,javascript,arrays,google-visualization,klipfolio,Javascript,Arrays,Google Visualization,Klipfolio,我在一个叫做Klipfolio的系统中使用谷歌图表。已经修补了好几天了。很好奇是否有其他人也尝试过同样的方法。这个问题对Kipfolio来说并不特别,但我认为一点背景知识可能会有很大帮助 代码如下: var _component = this; var _dataModel = this.dataModel; var thearray = $.map(_dataModel, function(value, index) { return [value]; }); var thearrays =

我在一个叫做Klipfolio的系统中使用谷歌图表。已经修补了好几天了。很好奇是否有其他人也尝试过同样的方法。这个问题对Kipfolio来说并不特别,但我认为一点背景知识可能会有很大帮助

代码如下:

var _component = this;
var _dataModel = this.dataModel;
var thearray = $.map(_dataModel, function(value, index) {
 return [value];
});
var thearrays = ('['+thearray.toString()+']');
var datadone = (JSON.parse(thearrays));
console.table(datadone);
google.setOnLoadCallback(drawChart);

function drawChart() {

var data = new google.visualization.DataTable();
data.addColumn('string', 'From');
data.addColumn('string', 'To');
data.addColumn('number', 'Weight');

data.addRows([datadone]);

    // Sets chart options.
    var options = {
    sankey: {
        iterations: 700,
        node: {
            label: {
                fontName: 'Arial',
                fontSize: 12,
                color: 'rgb(74,74,74)',
                bold: true,
                italic: false
            },
            interactivity: true, // Allows you to select nodes.
            labelPadding: 3, // Horizontal distance between the label and the node.
            nodePadding: 20, // Vertical distance between nodes.
            width: 10, // Thickness of the node.
            colors: [
                'rgb(82,144,233)', // Custom color palette for sankey nodes.
            'rgb(113,179,124)', // Nodes will cycle through this palette
            'rgb(206,226,55)', // giving each node its own color.
            'rgb(239,209,64)',
                'rgb(236,147,47)',
                'rgb(225,77,87)',
                'rgb(150,89,148)',
                'rgb(157,121,82)',
                'rgb(154,146,137)']
        }
    }


};

    // Instantiates and draws our chart, passing in some options.
    var chart = new google.visualization.Sankey(document.getElementById('sankey_basic'));
    chart.draw(data, options);
  }
console.table中的\u dataModel变量输出如下:

console.table中的数组变量输出如下:

当图表呈现时,它会抛出错误:

未捕获错误:给定的行大小不同于3(表中的列数)


我是否应该采取任何其他步骤来消除此错误?我不熟悉使用javascript和对象/数组。我看到数组变量有4列出现,但这就是问题所在吗?

看起来我的问题是在data.addRows函数上添加了括号。因此,不是:

data.addRows([datadone]);
没有生成,我将其替换为:

data.addRows(datadone);

感谢Henrik指点我查看数据源。一旦我验证了形成,我就能够识别问题并解决它。图表现在看起来很棒

您的屏幕截图并没有真正显示您试图添加到图表中的JSON的结构。请安排一些更好的内容来复习,最好是让我们以字符串的形式看。绝对是最好的小提琴。很高兴你明白了。关于这方面的更多参考,以及如何格式化
data.addRows(X)//data.addRows([X])//data.addRow(X)
等,我们上周刚刚讨论过。