将逗号分隔的字符串转换为JavaScript数组。

3

我有这个字符串:

"'California',51.2154,-95.2135464,'data'" 

我想将它转换为JavaScript数组,就像这样:
var data = ['California',51.2154,-95.2135464,'data'];

我该怎么做?

我没有jQuery。而且我不想使用jQuery。


1
你可以遍历值并相应地处理它们...不过我理解你的观点。如果你贴出你目前已尝试的代码,并明确指出你遇到的问题,那会更有帮助。如果你只是问如何将逗号分隔的字符串转换为数组,那这个问题之前已经讨论过了。你提供的信息越多,你在问题中付出的努力越多,我们回答时也会付出更多的努力。 - undefined
3个回答

3

尝试:

var initialString = "'California',51.2154,-95.2135464,'data'";
var dataArray = initialString .split(",");

这个答案中的dataArray与问题中的data不是同一个东西。 - undefined

2
使用字符串可用的split函数,并将数字转换为实际数字,而不是字符串。

var ar = "'California',51.2154,-95.2135464,'data'".split(",");

for (var i = ar.length; i--;) {
  var tmp = parseFloat(ar[i]);
  ar[i] = (!isNaN(tmp)) ? tmp : ar[i].replace(/['"]/g, "");
}

console.log(ar)

注意,如果您的字符串包含数组/对象,这将失败。


1
它将变成这样 ["'加利福尼亚州'", "51.2154", "-95.2135464", "'数据'"] 这是错误的 - undefined
请勿删除可能的重复内容横幅,就像您在这个问题上所做的那样 - https://dev59.com/63nfs4cB2Jgan1znVRpM - 在将来这样做可能会导致进一步的管理员操作。 - undefined
@casperOne 我会记住的,虽然我认为你的回滚是不必要的。 - undefined
@Christoph 不,这是绝对必要的,因为你篡改了一个系统生成的横幅。那些是禁止修改的。如果问题被关闭为重复,就没有任何理由将其删除。仅仅因为你认为它不是重复问题,并不意味着你可以将其删除。 - undefined
虽然我理解你的观点,而且我再也不会这样做了,但是我觉得回滚然后在另外一个编辑中删除掉那条信息是没有意义的。删除掉那个必要的澄清说明之后,人们就不会再把它误认为是重复问题了(就像他们一开始错误地做的那样...)。 - undefined

1
由于您的格式几乎符合JSON语法,您可以按照以下方式操作:
var dataArray = JSON.parse ('[' + initialString.replace (/'/g, '"') + ']');

这是在开头和结尾添加 '[' 和 ']' 字符,并将所有的 "''" 字符替换为 '"',然后执行 JSON 解析。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接