Каковы некоторые простые способы создания функции с помощью других функций

#javascript #arrays #function

Вопрос:

JavaScript — Код Visual Studio Итак, я пытаюсь создать простой генератор случайных паролей, я создал 4 разных массива, в каждом из которых есть функция для генерации случайного элемента из каждого, моя проблема в том, что я не уверен в том, как создать пятую функцию, которая может вызывать другие и помещать их в строку с пробелами (т. Е. 5 счастливых поющих кошек). Я очень новичок в программировании, поэтому не до конца понимаю его, я опубликую то, что у меня есть до сих пор.

 //Function to generate and display to console Word 1 - random number

function Word1() {

  var random = Math.floor(Math.random() * 9   1);
  return random


}

console.log(Word1());

// function to generate and display to console Word 2 - random emotion

function Word2() {

  var emotions = ['sad', 'happy', 'cheerful', 'angry', 'fear', 'surprise'];

  return emotions[Math.floor(Math.random() * emotions.length)];

}

console.log(Word2());

//function to generate and display to console Word 3 - random plural noun

function Word3() {

  var emotions = ['computer', 'day', 'car', 'flower', 'house', 'cat'];
  var plural = ['s'];
  var random = emotions[Math.floor(Math.random() * emotions.length)];
  var emotion_plural = random   plural;
  return emotion_plural


}

console.log(Word3());

//function to generate and display to console Word 4 - random verb

function Word4() {

  var verbs = ['running', 'walking', 'sleeping', 'talking', 'singing', 'sitting'];
var random = verbs[Math.floor(Math.random() * verbs.length)];

return random
}

console.log(Word4());

// function to create password one-line string
function passWord() {


  //??
}

console.log(passWord());
 

Комментарии:

1. let pwd = `${Word1()} ${Word2()} ${Word3()} ${Word4()}` ? Кстати, вы ничего не возвращаете из Word4 Более того, вы, вероятно, должны использовать результат Word1 in Word3 , чтобы ваше предложение использовало множественное число только в случае необходимости

Ответ №1:

Вызовите все свои функции в password функции и объедините возвращаемые значения, например

 function random(...array) {
  return array[array.length * Math.random() | 0];
}

function word1() {
  return Math.floor(Math.random() * 9   1);
}

function word2() {
  return random('sad', 'happy', 'cheerful', 'angry', 'fear', 'surprise');
}

function word3() {
  const plural = 's';
  return random('computer', 'day', 'car', 'flower', 'house', 'cat')   plural;
}

function word4() {
  return random('running', 'walking', 'sleeping', 'talking', 'singing', 'sitting');
}

function password() {
  return [word1(), word2(), word3(), word4()].join(' ');
}

console.log(password()); 

Комментарии:

1. Если вы всегда добавляете множественное s число , почему бы просто не добавить его к словам? Было бы лучше добавить множественное число только на основе результата word1

Ответ №2:

Добавьте это в функцию пароля:

     const part1 = word1()
    const part2 = word2()
    const part3 = word3()
    const part4 = word4()
    
    return part1   part2   part3   part4 

Комментарии:

1. спасибо, это сработало и дало мне больше понимания того, что я могу сделать.

Ответ №3:

Попробуйте это *на основе вашего кода

 function Word4() {

  var verbs = ['running', 'walking', 'sleeping', 'talking', 'singing', 'sitting'];

  return verbs[Math.floor(Math.random() * verbs.length)];

}

console.log(Word4());

// function to create password one-line string
function passWord() {

    return `${Word1()} ${Word2()} ${Word3()} ${Word4()}`

}
 

Комментарии:

1. Это тоже сработало, я мало что делал с идентификаторами, так что это дало мне образование.

Ответ №4:

Попробуйте это

 function Word4() {

      var verbs = ['running', 'walking', 'sleeping', 'talking', 'singing', 'sitting'];

      return verbs[4];
}

function passWord() {
        return  Word1()   ' '   Word2()   ' '   Word3()   ' '   Word4();
}