函数接受1,2,3但不接受字符串'1,2,3'?

时间:2012-11-01 11:45:45

标签: javascript google-visualization

我正在使用谷歌可视化图表api,但我相信这是我正在制作的某种javascript错误。我用数字填充这个数组:

visibleRows = [];

并使其成为逗号分隔的字符串:

visibleRows.join(',');

console.logging visibleRows在此之后给出:

0,1,3

但是当我将visibleRows提供给函数的下一行:

pieViewHits.setRows([visibleRows]);

我收到错误:无效的行索引0,1,3应该在[0-3] BUT 的范围内,如果我用以下代码替换所有上面的代码:

pieViewHits.setRows([0,1,3]);

完美无缺!有什么想法吗?

2 个答案:

答案 0 :(得分:0)

visibleRows已经是一个数组,因此您不必将其作为[visibleRows]传递(在方括号内)。

更改

pieViewHits.setRows([visibleRows]);

pieViewHits.setRows(visibleRows);

我认为您不需要使用visibleRows.join(',');

答案 1 :(得分:0)

[0,1,3]是一个包含三个数字的数组

visibleRows.join(',');返回逗号分隔的字符串。你不是在任何地方分配它,所以它什么都不做。

[visibleRows]是一个包含第二个数组的数组,它依次包含三个数字。如果在字符串上下文中使用它,它将被展平为逗号分隔的字符串。

该函数需要一个包含三个数字的数组,而不是包含另一个数组的数组或包含逗号分隔字符串的数组。

只是传递数组而不将其包装在另一个数组中或join它。

visibleRows = [];
visibleRows.push(0);
visibleRows.push(1);
visibleRows.push(3);
pieViewHits.setRows(visibleRows);