Random combination from different sentences

Tags: ,



i try to get a random combination of different sentences. So i have five different types of sentences. Each type has between 5-8 example sentences. What i try to achieve ist that i always get one random sentence of each type. I’ve already tried a few things, but i don’t get it really randomly. With the code i have there are only a few combinations that where shown again and again. Sometimes there appears “undefined” instead of certain sentences. Can someone help me, to get the it running really randomly and without the “undefined” thing.

Thanks a lot!

here’s what i have already:

let green, display, button, clock, end;
green = ["Die Verpackung ist schön gestaltet und praktisch.", "Paket kam gut verpackt und sicher an.", "Lieferung schnell und pünktlich.", "Der Versand verlief schnell und reibungslos.", "Sehr guter Artikel, wie beschrieben geliefert.", "Schnell geliefert und guter Preis.",];
display = ["Super einfache und leichte Montage.", "Ionisiert Wasser und macht hartes Wasser weich.", "Duschen mit diesem Duschkopf ist ein Erlebnis.", "Verbessert den Wasserdruck um mindestens 200%!", "Der Zitronenduft ist sehr erfrischend.", "Es riecht super und toller Wasserstrahl.", "Der Wasserdruck ist wirklich immens!."];
button = ["Vitamin C Duschkopf ist sehr gesund und erfrischend.", "Dieser Duschkopf schützt die Haut und verbessert die Haarqualität.", "Discher Duschkopf entfernt Rost, Gerüche, Chlor und Schwermetalle aus Wasser.", "Duschen macht sehr viel Spaß.", "Kein Haarausfall mehr, das ist unglaublich!", "Unglaublich leichte Montage."];

clock = ["Dieser Duschkopf ist bunt und hat erfrischende Farbe.", "Sehr schöner Duschkopf, farbenfroh.", "Das orange und gelb ist wunderschön und passt perfekt.", "Verarbeitung des Produkts ist super.", "Tolle Farbkombination."
]
end = ["Tolles Produkt.", "10/10 Würde ich wieder kaufen.", "Absolut super :)", "Sehr hippes Design, gefällt mir sehr gut.", "Von mir einen absolute Kaufempfehlung.", "Super Preisleistungsverhältnis bei diesem Produkt.", "Ich habe super Erfahrung gemacht mit diesem Vitamin C/E Duschkopf.", "Bester Duschkopf den ich jemals gekauft habe.", "Großartiges Produkt, sehr zu empehlen.", "Hat alles gepasst Top.", "Sehr Zufrieden, gerne wieder!"];


function sentence() {
  let rand1 = Math.floor(Math.random() * 6);
    
  let content = clock[rand1] + " " + display[rand1] + " " + button[rand1] + " " + green[rand1] + " " + end[rand1];

  document.getElementById('sentence').innerHTML = """ + content + """;
}
sentence();
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>re:view</title>
<link rel="stylesheet" href="css/main.css">
<script type="text/javascript" src="main.js"></script>
    
</head>

<body>
    

    <div class="wrapper">
        <h1>Sentence Generator</h1>
        <button style="" onclick="sentence()">Generate</button>

        <div class="container">
            <p id="sentence"></p>
        </div>
    </div>
    
    
</body>
</html>

Answer

You are using the same random value for all sentence parts even though they vary in length.

you need to use a separate random value for each using that arrays length for the maximum of the range.

See your updated code below.

let green, display, button, clock, end;
green = ["Die Verpackung ist schön gestaltet und praktisch.", "Paket kam gut verpackt und sicher an.", "Lieferung schnell und pünktlich.", "Der Versand verlief schnell und reibungslos.", "Sehr guter Artikel, wie beschrieben geliefert.", "Schnell geliefert und guter Preis.",];
display = ["Super einfache und leichte Montage.", "Ionisiert Wasser und macht hartes Wasser weich.", "Duschen mit diesem Duschkopf ist ein Erlebnis.", "Verbessert den Wasserdruck um mindestens 200%!", "Der Zitronenduft ist sehr erfrischend.", "Es riecht super und toller Wasserstrahl.", "Der Wasserdruck ist wirklich immens!."];
button = ["Vitamin C Duschkopf ist sehr gesund und erfrischend.", "Dieser Duschkopf schützt die Haut und verbessert die Haarqualität.", "Discher Duschkopf entfernt Rost, Gerüche, Chlor und Schwermetalle aus Wasser.", "Duschen macht sehr viel Spaß.", "Kein Haarausfall mehr, das ist unglaublich!", "Unglaublich leichte Montage."];

clock = ["Dieser Duschkopf ist bunt und hat erfrischende Farbe.", "Sehr schöner Duschkopf, farbenfroh.", "Das orange und gelb ist wunderschön und passt perfekt.", "Verarbeitung des Produkts ist super.", "Tolle Farbkombination."
]
end = ["Tolles Produkt.", "10/10 Würde ich wieder kaufen.", "Absolut super :)", "Sehr hippes Design, gefällt mir sehr gut.", "Von mir einen absolute Kaufempfehlung.", "Super Preisleistungsverhältnis bei diesem Produkt.", "Ich habe super Erfahrung gemacht mit diesem Vitamin C/E Duschkopf.", "Bester Duschkopf den ich jemals gekauft habe.", "Großartiges Produkt, sehr zu empehlen.", "Hat alles gepasst Top.", "Sehr Zufrieden, gerne wieder!"];


function sentence() {
  let content = clock[Math.floor(Math.random() * clock.length)] + " " + display[Math.floor(Math.random() * display.length)] + " " + button[Math.floor(Math.random() * button.length)] + " " + green[Math.floor(Math.random() * green.length)] + " " + end[Math.floor(Math.random() * end.length)];

  document.getElementById('sentence').innerHTML = "&quot;" + content + "&quot;";
}
sentence();


Source: stackoverflow