Javascript 函数接受1,2,3,但不接受';t接受字符串';1,2,3';?
我使用的是谷歌可视化图表api,但我相信这是我犯的某种javascript错误。我用数字填充此数组: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]范围内,但是如果
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在运行joinvisibleRows
不会转换为字符串后即成为字符串。您可以签出MDN.join()
将数组转换为字符串,并将转换后的值返回给指定的变量。例如:str=visibleRows.join(',')代码>。这里,str
是一个字符串,visibleRows
是一个数组。
visibleRows = [];
visibleRows.push(0);
visibleRows.push(1);
visibleRows.push(3);
pieViewHits.setRows(visibleRows);