Добавить символы в строку в Javascript


108

Мне нужно добавить символы цикла For в пустую строку. Я знаю, что вы можете использовать функцию concat в Javascript для выполнения concat со строками

var first_name = "peter"; 
var last_name = "jones"; 
var name=first_name.concat(last_name) 

но с моим примером это не работает. Есть идеи, как это сделать по-другому?

мой код:

    var text ="";
    for (var member in list) {
            text.concat(list[member]);
    }

1
Если список является массивом, не используйте for...inобычный forцикл. Дополнительная информация здесь: developer.mozilla.org/en/JavaScript/Reference/Statements/… Кстати. если вы внимательно посмотрите на оба ваших примера, вы увидите разницу ( name=first_name.concat(last_name)vstext.concat(list[member])
Феликс Клинг,

Ответы:


154
var text ="";
for (var member in list) {
        text += list[member];
}

Лучшим способом может быть получение ключей от объекта вместо iterating ( for...in) и присоединение к ним: var text = ""; text += Object.keys(list).join('')
Blazes

50

Вы также можете добавлять строки к существующей строке следующим образом:

var myString = "Hello ";
myString += "World";
myString += "!";

результат будет -> Hello World!


7

просто использовал +оператор. Javascript объединяет строки с +


5

Похоже, вы хотите использовать join, например:

var text = list.join();

1
Работает только для массивов. Но я боюсь, что OP использует for...inдля обхода массива, поэтому ваше предложение, вероятно, сработает.
Феликс Клинг,

5

Чтобы использовать String.concat, вам необходимо заменить существующий текст, поскольку функция не действует по ссылке.

var text ="";
for (var member in list) {
        text = text.concat(list[member]);
}

Конечно, предложения join () или + =, предложенные другими, также будут работать нормально.


Это хорошее решение, потому что оно оставляет дверь открытой для объединения функций
Марк Карпентер-младший,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.