对变量不起作用的replace()

时间:2018-04-27 16:04:27

标签: javascript replace immutability

replace()没有处理变量我已经创建了代表我从循环中的JSON对象派生的一堆名称。

我理解字符串在JS中是不可变的。我相信我已经排除了这一点。

for (object in Object.keys(json)) {
    console.log(json[object]["senderProfile"]["name"])
    var name_ = String(json[object]["senderProfile"]["name"])
    var name = name_.replace(',', '')
    names.push(name+"<br>")
}

document.getElementById("json_out").innerHTML = names;

呈现的HTML在每个名称之间都有逗号。不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

names是一个数组。您隐式将数组转换为字符串。默认情况下,数组成员用逗号分隔。简单的例子:

&#13;
&#13;
console.log('' + [1,2,3])
&#13;
&#13;
&#13;

您可以通过调用.join

来使用自定义分隔符加入数组成员

&#13;
&#13;
console.log('' + [1,2,3].join(''))
&#13;
&#13;
&#13;

可以简化您的代码,但不能不知道jsonjson[object]["senderProfile"]["name"]的价值。但是,您可以将其用作元素分隔符,而不是将<br>附加到名称:

var names = Object.keys(json)
  .map(key => json[key]["senderProfile"]["name"]);

document.getElementById("json_out").innerHTML = names.join('<br>');