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

Javascript 函数接受1,2,3,但不接受';t接受字符串';1,2,3';?,javascript,google-visualization,Javascript,Google Visualization,我使用的是谷歌可视化图表api,但我相信这是我犯的某种javascript错误。我用数字填充此数组: visibleRows = []; 并将其设置为逗号分隔的字符串: visibleRows.join(','); console.logging visibleRows在此之后提供: 0,1,3 但当我将visibleRows输入函数时,下一行: pieViewHits.setRows([visibleRows]); 我得到一个错误:无效的行索引0,1,3应该在[0-3]范围内,但是如果

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

visibleRows = [];
并将其设置为逗号分隔的字符串:

visibleRows.join(',');
console.logging visibleRows在此之后提供:

0,1,3
但当我将visibleRows输入函数时,下一行:

pieViewHits.setRows([visibleRows]);
我得到一个错误:无效的行索引0,1,3应该在[0-3]范围内,但是如果我用以下代码替换上述所有代码,则

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

它工作得很好!有什么想法吗?

visibleRows
已经是一个数组,因此您不必将其作为
[visibleRows]
传递(在框中)

改变

pieViewHits.setRows([visibleRows]);


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

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

visibleRows.join(',')返回逗号分隔的字符串。您没有将其分配到任何位置,因此它不会执行任何操作

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

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

只需传递数组,而不必将其包装到另一个数组中或
加入它

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

这不是C,
字符串
不是
数组
…visibleRows.join(',');将数组转换为逗号分隔的字符串。这并不能改变字符串不是数组的事实。我认为您误解了。visibleRows.join(',');将数组转换为逗号分隔的字符串。@Hardwarker我明白了。`visibleRows.join(',);`将数组返回为字符串。`visibleRows`未转换为字符串,它仍然是一个数组。不visibleRows在运行join
visibleRows
不会转换为字符串后即成为字符串。您可以签出MDN
.join()
将数组转换为字符串,并将转换后的值返回给指定的变量。例如:
str=visibleRows.join(',')。这里,
str
是一个字符串,
visibleRows
是一个数组。
visibleRows = [];
visibleRows.push(0);
visibleRows.push(1);
visibleRows.push(3);
pieViewHits.setRows(visibleRows);