如何在javascript中将字符串中的属性添加到对象中?
鉴于以下目标:如何在javascript中将字符串中的属性添加到对象中?,javascript,Javascript,鉴于以下目标: var obj = { a: 1 }; 和以下字符串: var s = "b: 2"; 我需要的是在计算字符串s之后,以以下对象结束: obj === { a:1, b:2 } 我尝试了eval,但没有找到答案。有什么想法吗?所以试试这样的方法 var obj = { a: 1 }; var s = "b: 2"; s = s.replace(/\s/g, '').split(":"); obj[s[0]] = s[1]; var obj={a:1}; var s=“b
var obj = { a: 1 };
和以下字符串:
var s = "b: 2";
我需要的是在计算字符串s之后,以以下对象结束:
obj === { a:1, b:2 }
我尝试了eval
,但没有找到答案。有什么想法吗?所以试试这样的方法
var obj = { a: 1 };
var s = "b: 2";
s = s.replace(/\s/g, '').split(":");
obj[s[0]] = s[1];
var obj={a:1};
var s=“b:2”;
s=s.replace(/\s/g')。拆分(“:”);
obj[s[0]]=s[1];
警报(JSON.stringify(obj))代码>您可以使用此符号obj[propName]=value动态设置对象属性。在您的例子中,我使用子字符串来分割您的值和属性名
obj[s.substring(0,1)] = s.substring(3,4);
这也适用于字符串中的多个键值对
var obj = {a: 1};
str = "b: 2";
var strArr = str.split(',');
for (var index in strArr) {
var strMap = strArr[index].split(':');
obj[strMap[0].trim()] = parseInt(strMap[1].trim());
}
在这里,我只需将字符串拆分为数组,然后遍历它并生成所需的映射。eval()
将字符串视为普通代码,因此您可以使用return
关键字返回所需的值
var expression=“{b:2}”;
var expString=“return”+表达式+”;“
//返回对象{b:2}
警报(eval(“((function(){“+expString+“}())”)”).b)代码>是否要将对象与字符串进行比较?