Я пытаюсь создать генератор, который создает полуслучайное предложение, основанное на вытягивании переменных из массивов разных слов при случайном определении индекса, а затем удаление этого слова из массива, чтобы убедиться что повторений нет.Сжатие кода генератора случайных предложений JavaScript
Это работает, но не так, как легко построить. Каждый раз, когда я хочу извлечь из массива, который уже был извлечен из одной строки, сценарий просто останавливается.
document.getElementById("button").onclick = function() {
genContent();
};
function genContent() {
\t var content = "";
\t lists();
// --- what works ---
content += r(person).concat(" ", r(verb), "ed ");
content += r(person).concat(", so ");
content += r(person).concat(" is ", r(verb), "ing ");
content += r(person);
// --- what I want to condense it down to ---
// content += r(person).concat(" ", r(verb), "ed ", r(person), ", so ", r(person), " is ", r(verb), "ing ", r(person));
document.getElementById("output").innerHTML = content.charAt(0).toUpperCase() + content.slice(1);
};
function r(array) {
random = Math.floor(Math.random() * array.length);
value = array[random];
array.splice(random, 1);
return value;
};
function lists() {
\t person = ["Grace", "Jared", "Suzy", "Tommy"];
verb = [
\t "answer", "ask", "block", "call",
"delay", "expect", "follow", "greet",
"help", "inform", "join", "kick",
"label", "mark", "need", "order",
"pick", "question", "request", "signal",
"trick", "visit", "warn"];
};
<div>
<textarea id="output" output="" rows="8" style="width:50%; min-width:285px;" readonly="readonly">
Click the button to generate a sentence.
</textarea>
<br>
<input type="button" value="Make content" id="button">
</div>
(jsfiddle link because it's easier to edit)
Любые идеи о том, как добиться чего-то вдоль линий закомментированного кода (строка 15)?
Вы могли бы на самом деле присоединиться на космический характер и что поможет вам очистить и даже не нужны некоторые записи массива, которые также являются пустым пространством! – spozun