更新具有相同值的对象

时间:2015-08-19 09:01:29

标签: javascript

我使用下面的代码正常工作,现在我想为它添加一些值Dest并且它不起作用,

这是有效的

var str = '\
BASH=/bin/sh\n
CF_INSTANCE_P=\'[{external:500,internal:501}]\'\n\
COLUMNS=80'

var obj = {};
str.split('\n').forEach(function (el) {
  var spl = el.split('=');
  obj[spl[0]] = spl[1];
});

console.log(obj)

现在我需要将以下内容添加到str(在COLUMNS = 80下),并且它不起作用(我只看到dest条目而不是所有其他条目,我知道它的原因是' =&# 39;哪个不存在,但如何使用所有这些secnarios)?我需要将其添加到 obj,就像所有其他值一样

dest='[
    {"name":"satr", "url":"https://sd.com", "proxyHost":"pu.corp", "proxyPort":"8080"}
]'

更新

这里的str只是为了演示我从形式上看它是readFile as-is 而我无法改变它......

2 个答案:

答案 0 :(得分:0)

这个怎么样?

var str = '\
BASH=/bin/sh\n\
BASH_ARGC=()\n\
BASH_ARGV=()\n\
BASH_LINENO=([0]="0")\n\
BASH_VERSINFO=([0]="3" [1]="2" [2]="51" [3]="1" [4]="release" )\n\
BASH_VERSION=\'3.2.2(1)-release\'\n\
CF_INSTANCE_P=\'[{external:500,internal:501}]\'\n\
COLUMNS=80\'\n\
DEST=\'[{"name":"satr", "url":"https://sd.com", "proxyHost":"pu.corp", "proxyPort":"8080"}]'


var obj = {};
str.split('\n').forEach(function (el) {
  var spl = el.split('=');
  obj[spl[0]] = spl[1];
});

console.log(obj)

答案 1 :(得分:0)

或者您可以在解析字符串之后添加它:

obj.dest = [{"name":"satr", "url":"https://sd.com", "proxyHost":"pu.corp", "proxyPort":"8080"}];