我目前正在开发一个僵尸程序项目并且遇到了一些代码。 我尝试做的是将用户输入转换为数组,然后在将其发送回用户之前对其进行修改。
就像
user=> hello
bot => :indicator_h::indicator_e::indicator_l::indicator_l::indicator_o:
如您所见,_
之后的字母基于用户输入:indicator_{userinput#1}
,然后在结尾添加另一个:
。
我使用split()
将用户的输入转换为数组。我已经让机器人发送了:indicator_h:
,但它只适用于一个单词,当我发送多个字符时,它会发送:indicator_h,e,l,l,o:
而不是单独的&em; <。 / p>
我不知道如何正确地问这个,因为我的英语不太好,也许有人已经问过这个问题。如果是这样,请在将此问题标记为重复之前给我一个指向该主题的链接。 :)
谢谢你的高级, 干杯!
答案 0 :(得分:2)
试试这个,
var s = "hello world"
console.log(s.split("").filter(v=> v!==" ").map(i=>":indicator_" + i + ":").join(""))
&#13;
答案 1 :(得分:1)
input_massage
从用户输入中创建一个字母数组。然后遍历每个字母并将其转换为:indicator_{userinput#1}:
。然后将其转换回机器人的字符串。
function input_massage(input) {
return input.split('')
.map(function(letter) {
return `:indicator_${letter}:`
})
.join('');
}
console.log(input_massage('hello'))
答案 2 :(得分:0)
您可以将输入字符串("hello"
)拆分为单个字符,使用Array.prototype.map
将每个元素转换为相应的指示符,然后将所有修改后的元素连接成一个字符串。< / p>
function toIndicators(str) {
return str.split("").map(char => `:indicator_${char}:`).join("");
}
toIndicators("hello"); // => ":indicator_h::indicator_e::indicator_l::indicator_l::indicator_o:"
split("")
调用将字符串转换为包含所有单个字符的数组。
map
调用在数组的所有元素(所有字符)上执行提供的函数。传递给map的函数将单个字符插入到指标模板字符串中的正确位置。
join("")
调用将数组的所有元素连接成一个字符串,它们之间没有分隔符。