如何在javascript

时间:2019-10-08 20:08:43

标签: javascript string function loops while-loop

因此,一旦满足条件,我的代码当前仅在整个字符串后放置-boink或-bork,但我希望这样做,以便在每个单词之后根据其是否满足更大条件来添加术语或少于五个字符。 例如“我的名字叫boinkk就是emmanuel-bork”

function myFunctionOne(input1, input2) {

var prompt1 = prompt("Please enter 1, 2, 3, or Exit").toLowerCase();
var prompt2 = input2;

if (prompt1 == 1) {
prompt2 = prompt("Please enter a string");

while (prompt2.length === 0) {
  prompt2 = prompt("You need to enter something");
}

myFunctionOne(prompt1, prompt2);
}

if (prompt1 == 2) {
  if (prompt2.length > 5) {
      console.log(prompt2 + "-bork");
  }
  myFunctionOne(prompt2);
}
else {
  console.log(prompt2 + "-boink")
}

}
 myFunctionOne(1, 2, null);

2 个答案:

答案 0 :(得分:2)

您需要使用split方法将字符串拆分为单词,然后使用for循环遍历它们,以检查它们是否超过5个字符,并添加“ bork”或“ boink”,然后再次合并单词。

我可以为您编写代码,但是我认为让您自己编写代码会更令人满意。如果要我写,请告诉我。

编辑 我要尽可能地写代码

function myFunctionOne(input1, input2) {

    var prompt1 = prompt("Please enter 1, 2, 3, or Exit").toLowerCase();
    var prompt2 = input2;

    if (prompt1 == 1) {
        prompt2 = prompt("Please enter a string");

        while (prompt2.length === 0) {
            prompt2 = prompt("You need to enter something");
        }

        myFunctionOne(prompt1, prompt2);
    }

    if (prompt1 == 2) {
        var words = prompt2.split(" "); // we separate the string into words dividing them by space into an array called words
        for(var i = 0; i < words.length; i++){ // we loop from 0 to the length of the array - 1 to access all positions in the array (the last position in arrays are always the length of the array - 1 because they start at 0)  
            if(words[i].length > 5){ //we check if the word in this position of the array is longer than 5 characters
                words[i] += "-bork"; //if it is we add -bork
            }else{
                words[i] += "-boink" //if it is not longer than 5 characters we add -boink
            }
        }
        console.log(words.join(" ")); //we print the array joining the elements with an space to form a string
    }

}
myFunctionOne(1, 2, null);

答案 1 :(得分:0)

我对代码顶部的内容感到有些困惑,所以我不会重构整个内容。从字符串开始,我将提供一个解释。

一种方法是使用.split(),它会根据您选择的分割字符串的字符返回一个字符串值数组。我们需要这样做的原因是因为您的代码当前正在遍历每个字符串,而不是字符串中的每个单词。在这种情况下,我假设您的字符串不能使用逗号或句点之类的标点符号。在这种情况下,您希望按空格分隔,因此它看起来像是string.split(“”)。

然后,您可以使用map()数组方法遍历数组中的每个值并对其执行功能。注意,map()方法将返回一个新数组,因此最好将其保存到一个新变量中。

然后,您可以使用.join()方法,该方法将基于某个值(基本上与.split()相反)连接数组的值。同样,假设没有标点符号,我将使用空格将数组连接起来,以使值之间有一个空格,看起来像array.join(“”)。

我在下面包括了一些模拟代码。

const string = prompt("Please enter your string");

const stringToArray = string.split(" ");
console.log(stringToArray);

const filteredArray = stringToArray.map((string) => {
  if (string.length > 5) {
    return string + "-bork";
  }

  return string + "-boink";
});
console.log(filteredArray);

const joinedFilteredArray = filteredArray.join(" ");
console.log(joinedFilteredArray);