在JavaScript中为数组添加空格

Adding space in an array in JavaScript

本文关键字:添加 空格 数组 JavaScript      更新时间:2023-09-26

我正在尝试制作一款绞刑游戏。我有一个函数,它接受这个单词,并创建一个新的下划线破折号数组。我已经很好地工作了,但现在我正试图添加有间距的功能,以便增加单词。但现在它添加了随机空格。

帮忙吗?

function dash(word) {
	var dash = [];
	for (var i = word.length - 1; i >= 0; i--) {
		if (word[i] == " ") {
			dash.push(" ");
		} else {
			dash.push("_");	
		}
	}
	return dash;
}

这些空格不是随机的——它们是反向的。
那是因为你从头到尾都在说话:
而不是for (var i = word.length - 1; i >= 0; i--) try it:

function dash(word) {
    var dash = [];
    for (var i = 0; i < word.length; i++) {
        if (word[i] == " ") {
            dash.push("&nbsp;");
        } else {
            dash.push("_"); 
        }
    }
    return dash;
}

这并不是在添加随机空格,它只是向后,因为你是向后遍历字符串。你要从最后开始,一步步走到最前面。它适用于由单个单词组成的字符串,因为您总是只有一定数量的空格。

只改变

for (var i = word.length - 1; i >= 0; i--)

for (var i = 0; i < word.length; i++)

这里有一些东西可以在你的控制台中运行来测试:

function dash(word) {
    var dash = [];
    for (var i = 0; i < word.length; i++) {
        if (word[i] == " ") {
            dash.push("&nbsp;");
        } else {
            dash.push("_");
        }
    }
    return dash;
}
var dashedSingle = dash('Testing');
var dashedMultiple = dash('Testing this sentence now');
console.log(dashedSingle)
console.log(dashedMultiple)

在for循环....中以相反的顺序遍历元素我试过了,工作得很好…

    function dash(word) {
      var dash = [];     
      for (var i = 0; i <=word.length - 1; i++) {
            if (word[i] == " ") {
                dash.push("&nbsp;");
            } else {
                dash.push("_"); 
            }
        }
      return dash;
    }

如果你只是想要你的单词在一个数组中,你可以使用String.prototype.split为你做这项工作。然后映射到字符数组。

var word = 'javascript is awesome'
console.log( 
  word.split('').map(letter => letter === ' ' ? '&nbsp;' : '_')
)

应该使用ASCII值的空格代替word[i] == " "

我不确定javascript中空格的ASCII值。但是不用担心,你可以使用charCodeAt();

word[i] == charCodeAt(" ")