在Javascript中向字符串添加字符

141

我需要在一个空字符串中使用For循环添加字符。我知道在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 循环。更多信息请参见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in 另外,如果你仔细观察你的两个例子,你会发现它们之间的区别(name=first_name.concat(last_name) vs text.concat(list[member]))。 - Felix Kling
9个回答

193
let text = "";
for(let member in list) {
  text += list[member];
}

1
一种更好的方法可能是从对象中获取键而不是迭代(for...in),然后在这些键上进行连接:var text = ""; text += Object.keys(list).join('') - Blazes

73

您也可以像这样将字符串添加到现有字符串中:

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

结果将会是 -> Hello World!


11

只需使用+运算符。JavaScript使用加号连接字符串。


6

听起来您想使用join,例如:

var text = list.join();

1
仅适用于数组。但我担心 OP 使用 for...in 遍历数组,所以您的建议可能有效。 - Felix Kling

6

使用String.concat方法时,由于该函数不是按引用操作的,因此您需要替换现有文本。

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

当然,其他人提供的join()或+=建议也可以正常工作。

这是一个好的解决方案,因为它为函数链接留下了空间。 - Mark Carpenter Jr

4

简单使用

文本 = 文本 + 字符串2


1
你可以使用字符串插值进行文本替换,具体请参考模板字面量中的表达式插值
let text = "";
for(let member in list) {
  text = `${text}${list[member]}`;
}

这似乎不是插值应该用于的目的。 - Al.G.

1
尝试这个。它将同一个字符多次添加到字符串中。
const addCharsToString = (string, char, howManyTimes) => {
  string + new Array(howManyTimes).fill(char).join('')
} 

1
你的字符串数组(列表)可以使用map和join方法操作;(如果需要,也可以对字符串进行进一步的更改)
var text = list.map(i => `${i}`).join(' ') 

该代码会返回 名字

但如果你想在名字周围添加更多内容,上述模板也能帮到你:

var text = list.map(i => `'${i}'`).join(' ') 

将返回'名字' '姓氏'

如果您想要一个由逗号分隔的名称序列

var text = list.map(i => `'${i}'`).join(',') 

将返回'第一','名称','第二','第三',...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接