Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中将字符串中的属性添加到对象中?_Javascript - Fatal编程技术网

如何在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)是否要将对象与字符串进行比较?