javascript:从字符串变量中推送数组值

标签 javascript

正如标题所说,我正在尝试从字符串变量设置一个数组。

/*** 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/

相关文章:

javascript - 传单放大到多边形

javascript - Django 在模板中使用 AJAX 渲染模板

javascript - 错误 : <path> attribute d: Expected number, "MNaN,NaNLNaN,NaNL…"。在 d3.js 中

javascript - 如何将 React 应用程序与 aframe VR 应用程序连接

javascript - 闭包编译器 : Avoid "missing return statement" warning when a return is guaranteed

javascript - 范围变量应用问题期间的 Angular 快速单击

javascript - 操作由 Promise AngularJS 返回的返回变量

javascript - 如何为对话框窗口设置动画?

javascript - 带下拉菜单的 angularjs ui.router activestate

javascript - 如何从一系列youtube视频链接中获取一系列youtube视频名称?