动态添加到空字符串
Adding dynamically to an empty string
我正试图将非空字符串中的每个字符分配给一个空字符串(进行复制)。这是我的代码:
x = "example";
y = "";
for (var i = 0; i < x.length; i++) {
y.charAt(i) = x.charAt(i);
}
alert(y);
然而,我在控制台中得到以下错误:
ReferenceError: invalid assignment left-hand side
y.charAt(i) = x.charAt(i);
我认为可以动态地增长一个非空字符串(希望我使用的是正确的术语)。感谢您的帮助!
空字符串中的"".charAt(0)
未定义。事实上,"a".charAt(0)
是"a"。
为什么不连接?
x = "example";
y = "";
//Simplest way:
y += x;
//With characters:
for (var i = 0; i < x.length; i++) {
y += x.charAt(i);
}
charAt(x)
在字符串this
的x
位置返回一个包含字符的字符串,但不返回到该位置的链接,因此,它不等于C的[]
表示法,后者返回到字符所在字节的链接。因此,charAt(x)=
赋值无效,"a"="b"
赋值也无效。
无论如何,无论什么是x
,都不能执行"".charAt(x)
,因为字符串是空的。
无论如何,你甚至不能做"a".charAt(0)="b"
,因为第一段中描述的原因。
因此,更改字符串中某个字符的唯一方法是str[x]
,它适用于大多数浏览器。但是您仍然不能""[0]"
,所以您应该首先创建一个与要复制的字符串长度相同的字符串,或者使用串联。
这是可能的。这是正确的做法:
x = "example";
y = "";
for (var i = 0; i < x.length; i++) {
y += x.charAt(i);
}
您的方法不正确,因为charAt(i)方法返回位置i处的字符的(只读)值。
相反,赋值运算符(如=
)将运算=
右侧的值存储到左侧的变量中。
在这种情况下,CCD_ 16等于CCD_ 17。
例如:
第一次迭代:
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处的字符被附加到字符串y,并在末尾x === y
。
相关文章:
- 将字符串添加到页面url
- 如何将静态字符串添加到受信任的 ng-src
- 在这种情况下,如何将字符串添加到函数中 php
- 将字符串添加到短语 Javascript
- 将字符串添加到不区分大小写的 RegExp 中替换的事物开始
- 如何向变量字符串添加更多值
- 将查询字符串添加到当前URL中嵌入的查询的锚链接
- 使用JQuery将字符串添加到内联CSS中
- 在Javascript中作为字符串添加的整数
- JavaScript将字符串添加到数字而不是值
- 如何在javascript或jquery中为字符串添加一些数字
- 将字符串添加到吞咽流的开头
- 是否可以在正则表达式中向现有字符串添加新字符串
- 将字符串添加到 JavaScript 数组
- 使用 Javascript 通过表单将预定义的字符串添加到用户输入中
- EmberJs 将函数的返回字符串添加为类名
- 如何向字符串添加连字符(将其格式化为 16 位序列号)
- 如何仅在 Jquery/Javascript 中尚不存在时才将字符串添加到数组中
- 在 cordova 提示符下将子字符串添加到 results.input1
- 向 html 字符串添加粗体标记