【问题标题】:Convert Array in the string type to regular array using JavaScript使用 JavaScript 将字符串类型的数组转换为常规数组
【发布时间】:2020-10-12 19:01:49
【问题描述】:

我在javascript中有一个名为temp的字符串变量:

temp = "[{a: 1, b: 1}, {a: 2, b: 2}, {a: 3, b: 3}]"

如何将字符串 temp 转换为数组?

像这样:

temp = [{a: 1, b: 1}, {a: 2, b: 2}, {a: 3, b: 3}]

【问题讨论】:

  • 为什么不修复任何产生第一个 temp 的东西来代替产生有效的 JSON?

标签: javascript arrays string


【解决方案1】:

如果字符串是有效的 JSON 格式,您可以使用 JSON.parse()。但事实并非如此,所以唯一的通用解决方案(不编写自己的解析器)是eval()

var temp = "[{a: 1, b: 1}, {a: 2, b: 2}, {a: 3, b: 3}]"
var result = eval(temp);
console.log(result);

【讨论】:

    【解决方案2】:

    这可以使用eval javascript函数提取为array

    const input = "[{a: 1, b: 1}, {a: 2, b: 2}, {a: 3, b: 3}]";
    const output = eval(input);
    console.log(output);

    【讨论】:

      【解决方案3】:
      const arr = ['foo,', 'bar', 'red,', 'car']
      console.log(arr.join(' '))//"foo, bar red, car"
      

      您可以简单地使用 join() 函数将数组转换为字符串

      【讨论】:

        【解决方案4】:

        JSON.parse 应该可以工作,如果我理解正确的话

        您可以在解析 JSON 之前使用来自 this question 的答案来修复它

        【讨论】:

        • JSON 要求属性名称用双引号括起来。
        • 这不是有效的 JSON,所以解析会失败。
        • 哦,对了,我没注意到名字没有被引用
        猜你喜欢
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        • 2016-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-03
        • 2019-02-09
        相关资源
        最近更新 更多