有可能的。这是正确的方法:
x = "example";
y = "";
for (var i = 0; i < x.length; i++) {
y += x.charAt(i);
}
您的方法不正确,因为charAt(i)方法返回位置 i 处 char 的(只读)值。
相反,赋值运算符,例如=
,将 op 右侧的值存储到=
左侧的变量中。
在这种情况下y += x.charAt(i)
等于y = y + x.charAt(i)
。
例如:
第一次迭代:
x = "example";
y = ""
i = 0
x.charAt(i) == x.charAt(0) == "e"
y += x.charAt(i) -> y = y + x.charAt(i) -> y = y + x.charAt(0) -> y = y + "e" -> y = "" + "e" = e
第二次迭代:
x = "example";
y = "e"
i = 1
x.charAt(i) == x.charAt(1) == "x"
y += x.charAt(i) -> y = y + x.charAt(i) -> y = y + x.charAt(1) -> y = y + "x" -> y = "e" + "x"
等等...
在每一步,字符串 x 的位置 i 处的char被附加到字符串 y 和末尾x === y
。