replace () для переменной не работает - PullRequest
0 голосов
/ 27 апреля 2018

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 голосов
/ 27 апреля 2018

names - это массив. Вы неявно преобразуете массив в строку. По умолчанию члены массива разделяются запятой. Простой пример:

console.log('' + [1,2,3])

Вы можете объединить члены массива с помощью специального разделителя, вызвав .join:

console.log('' + [1,2,3].join(''))

Может быть возможно упростить ваш код, но не без знания значения json или json[object]["senderProfile"]["name"]. Однако вместо добавления <br> к имени вы можете использовать его в качестве разделителя элементов:

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

document.getElementById("json_out").innerHTML = names.join('<br>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...