两个数组: 1-userInput包含用户通过hint()输入的字符串。可以包含1到61个字符。 2-letterArray是静态的,包含9个字符。
我创建了一个变量arrayCount来查找userArray的长度。我需要创建一个if / else语句,该语句将在letterArray后面添加一个随机字符到userInput的末尾,直到arrayCount等于61为止,此时我可以继续执行其余的功能(我)。
我知道足够多的javascript知道什么是可能的,但是只有一个模糊的想法如何完成它。到目前为止,我的尝试都是徒劳的。
我已经尝试过.push,但是我很确定我的语法已经过时了。一直在互联网上搜索了两个小时,从w3schools.com上收集了我的大部分答案。
这是我的代码:
function chartFunction() {
var formInput = prompt("Please enter your phrase", "This eye chart is absolutely fantastic");
var capsInput = formInput.toUpperCase();
var userInput = capsInput.replace(/\s+/g, '');
var letterArray = ["E", "F", "Z", "K", "L", "O", "I", "D"]
var rand1 = letterArray[Math.floor(Math.random() * letterArray.length)];
var arrayCount = userInput.length
if(arrayCount !== 61) {
userInput.push(letterArray[Math.floor(Math.random() * letterArray.length)]);
} else {
document.write("<p>");
document.write(userInput[0]);
document.write("<p>");
document.write(userInput[1],userInput[2]);
答案 0 :(得分:0)
在您的代码中,您尝试在.push
上使用string
。根据您的问题描述,我提出了以下解决方案,让我知道我是否缺少某些东西。
function chartFunction() {
const MAX_CHAR = 61;
let userInput = prompt("Please enter your phrase", "This eye chart is absolutely fantastic");
// replace space and convert to uppercase
userInput = userInput.replace(/\s+/g, '').toUpperCase();
if (userInput.length < MAX_CHAR) {
const letterArray = ["E", "F", "Z", "K", "L", "O", "I", "D"];
const numberOfCharsToGenerate = MAX_CHAR - userInput.length;
/*
Array(numberOfCharsToGenerate) => generates an empty array set with the length specified
.fill('') => fill the empty array set with an emtpy string, which makes the actual array with value(here value is '')
.map() => modifies the array with the random string
.join() => converts array to string with delimitter ''
*/
userInput = userInput + Array(numberOfCharsToGenerate).fill('')
.map(() => letterArray[Math.floor(Math.random() * letterArray.length)]).join('');
}
// printing final 'userInput' and its length
console.log(userInput, userInput.length);
// remaining logic here
}
chartFunction();