首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字符串转换为javascript关联数组

将字符串转换为javascript关联数组
EN

Stack Overflow用户
提问于 2012-02-09 17:05:02
回答 4查看 1.6K关注 0票数 1

我有一根线

代码语言:javascript
运行
复制
string = "masterkey[key1][key2]";

我想在此基础上创建一个关联数组,以便它的计算结果为:

代码语言:javascript
运行
复制
{
  masterkey: {
    key1: {
      key2: value
    }
  }
}

我已经尝试过了:

代码语言:javascript
运行
复制
var fullName = string;
fullName = fullName.replace(/\[/g, '["');
fullName = fullName.replace(/\]/g, '"]');
eval("var "+fullName+";");

但是我得到了一个错误:带有一个指向([) "var masterkey["key1"]["key2"];"中第一个括号的箭头的missing ; before statement

我知道eval()不适合使用,所以如果你有任何建议,最好不要使用它,我真的很感激!

EN

Stack Overflow用户

发布于 2012-02-09 17:28:28

1)使用eval时,您提供的参数必须是有效的、完整的javascript。

这条线

代码语言:javascript
运行
复制
 var masterkey["key1"]["key2"];

不是有效的javascript语句。

为变量赋值时,必须使用=。简单地将一些值连接到变量名的末尾是行不通的。

2) var masterkey = ["key1"]["key2"]没有任何意义。

这看起来像是试图将nothing的"key1“属性的"key2”属性分配给masterkey。

如果您希望结果类似于您给出的示例对象,那么这就是您需要创建的。也就是说,正确解析字符串以创建对象比使用正则表达式将其转换为脚本进行计算要好得多。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9207920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档