正如标题所说,我正在尝试从字符串变量设置一个数组。
/*** THIS DOES NOT WORK ***/
var Multi = [];
var test = "[0,1],[1,5],[2,3],[3,10]";
Multi.push(test);
/*** THIS WORKS ***/
var Multi = [];
Multi.push([0,1],[1,5],[2,3],[3,10]);
为什么当我将它保存为字符串时它不起作用?我需要它在字符串中工作,因为我通过 AJAX 从另一个 PHP 文件中提取这些值。
谢谢。
最佳答案
您可以通过在前面添加 [
和在后面添加 ]
将您的字符串转换为有效的 JSON,然后使用 JSON.parse()
将您的 JSON 字符串转换为数组。现在您已经从字符串中获得了一个数组,您可以使用 Multi.push.apply(Multi, array)
扩展 Multi
数组,如下所示:
var Multi = [];
var test = "[0,1],[1,5],[2,3],[3,10]";
Multi.push.apply(Multi, JSON.parse('[' + test + ']'));
如评论中所述,更简洁的方法是确保您的 PHP 文件生成有效的 JSON。除了您不需要手动添加方括号外,所有这些答案都是相同的。
关于javascript:从字符串变量中推送数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390009/