手动删除String-JavaScript中的空白
我试图制作一个算法,它将执行与此函数相同的操作:手动删除String-JavaScript中的空白,javascript,Javascript,我试图制作一个算法,它将执行与此函数相同的操作:var string=string.split(“”).join(“”) 因此,如果我有以下字符串:你好它会变成你好 我不想使用.replace或regex或.split 但是,该算法似乎没有对字符串进行任何更改: var x = prompt("Enter String"); for (var i=0; i<=x.length;i++) { if (x[i] == " ") { x[i] = "";
var string=string.split(“”).join(“”)代码>
因此,如果我有以下字符串:你好
它会变成你好
我不想使用.replace
或regex
或.split
但是,该算法似乎没有对字符串进行任何更改:
var x = prompt("Enter String");
for (var i=0; i<=x.length;i++) {
if (x[i] == " ") {
x[i] = "";
}
}
alert(x);
var x=prompt(“输入字符串”);
对于(var i=0;i您的代码不起作用,因为对于字符串,类似于<代码>吸收器< /代码>,对于索引方法没有<代码> SETTER <代码>(<代码> x(0)=“W”<代码>)。您不能将字符串视为数组。它是可以用索引访问的特殊对象()形式,但严格地说,在这种方法中没有设置器。
您可以通过如下更改来修复代码
var x = prompt("Enter sum or 'e' to Exit");
var modified = "";
for (var i=0; i<x.length;i++) {
if (x[i] != " ") {
modified += x[i];
}
}
alert(modified);
在您的代码中,您只需比较值并尝试用相同的变量替换,但不可能用变量替换相同的值,只需使用新变量存储您的值,如下所示
var x = prompt("Enter sum or 'e' to Exit");
var v='';
for (var i=0; i<x.length;i++) {
if (x[i] != " ") {
v +=x[i];
}
}
alert(v);
var x=提示(“输入总和或“e”退出”);
var v=“”;
对于(var i=0;i另一种更新变量x
且不使用另一个变量的方法是对循环使用反向,并使用slice
获取i
前后的字符串:-
var x=prompt(“输入字符串”);
对于(var i=x.length;i--;){
如果(x[i]==“”){
x=x.切片(0,i)+x.切片(i+1,x.长度);
}
}
警报(x);
Hie
请检查下面的代码。它很长。但其他人可以帮助缩短。检查输出
var x = prompt("Hello how are you");
y = ''
flag = false
for (var i=0; i<x.length;i++) {
if (x[i] == " ") {
flag= true
}
else {
if (flag == true) {
y += ' '
y += x[i]
flag = false
}
else {
y += x[i]
}
}
}
alert(y)
var x=prompt(“你好”);
y=''
flag=false
对于(var i=0;i迭代字符串复制字符,跳过空格。您的代码不起作用,因为字符串是不可变的,所以您不能通过执行x[i]=“c”
来更改字符串中的字符
看
var string='你好';
var noSpaces='';
对于(变量i=0;i
警告(noSpaces);
编辑后(不希望使用替换、拆分或正则表达式),我重新提出了这个问题。出于兴趣,为什么不使用正确的工具来完成这项工作?这是不是专门告诉你避免使用这些方法的家庭作业?@jamice是的,这是我为自己做的家庭作业-测试字符串和循环的知识你必须通过做I你好
它变成了你好
你好
不你好
OP想删除空格,但不是所有空格。我知道这不是聪明的短代码,但它很有效。@JuanMendes-我说的和你刚才说的一样,基本上是说“它更新了x,并且没有建立新的值。”“这充其量只是误导,而实际上完全是错误的worst@JuanMendes这就是我的意思“OP只使用一个变量”@Jamiec我已经更新了解释。很抱歉造成混淆。投票结果是,这似乎是最好的解决方案,不过对于较老的浏览器,请参见:@Roberto是的,自从IE停止支持IE<10以来,我就不再关心它了。不过,使用charAt()仍然有一定的价值
仍然是因为使用括号确实会让你觉得你可以设置它。我们中的一些人仍然必须支持在IE兼容模式下运行的企业应用程序。通常是IE7,但有时甚至是IE5。不幸的是,我认为这不会很快消失,因为隐藏这些大型应用程序的成本太高(无论如何,这个评论不是有意否定的。@Roberto也不是我的,我很高兴我不用担心,这是一个完全正确的观点。
var x = prompt("Hello how are you");
y = ''
flag = false
for (var i=0; i<x.length;i++) {
if (x[i] == " ") {
flag= true
}
else {
if (flag == true) {
y += ' '
y += x[i]
flag = false
}
else {
y += x[i]
}
}
}
alert(y)