Ich versuche also, ein Element zufällig aus einer Zeichenfolge auszuwählen, dieses Element in ein anderes Array zu kopieren und dann das zufällig ausgewählte Element aus der ursprünglichen Zeichenfolge zu löschen.

Ich kann meinen Code jedoch nicht dazu bringen, dies richtig zu machen. Ich habe versucht, die ursprüngliche Saite zu schneiden und zu knallen, aber keine der beiden Techniken scheint zu funktionieren, und ich weiß nicht warum. Wenn jemand helfen könnte, wäre ich sehr dankbar.

for (var i=0; i < inputword.length; i++)
{
    letter = inputword[Math.floor(Math.random() * inputword.length)];
    anagram[i]=letter;
    inputword.slice(letter,1);
}

$("label").text(anagram);
-1
user3394907 5 Aug. 2015 im 20:16

3 Antworten

Beste Antwort

Der richtige Weg in Ihrem Code wäre

inputword = inputword.slice(letter,1);

Weil Slice () ein neues Array zurückgibt.

Alternativ können Sie splice () verwenden, um das vorhandene Array zu ändern.

1
Zaphyk 5 Aug. 2015 im 17:23

Beim Schneiden wird eine flache Kopie des ursprünglichen Arrays zurückgegeben: es ändert nicht das ursprüngliche Array. Wie Zaphyk angibt, möchten Sie die Rückgabe des Slice "Eingabewort" zuweisen, damit die Entfernung Ihrem ursprünglichen Array erhalten bleibt .

Seien Sie vorsichtig mit Spleißen, da es auf das ursprüngliche Array wirkt, aber gibt die entfernten Elemente zurück!

1
Community 23 Mai 2017 im 12:25
for (var i=0; i < inputword.length; i++)
{
  letter = inputword[Math.floor(Math.random() * inputword.length)];
  anagram[i]=letter;

  //You need to reassign your sliced word
  inputword = inputword.slice(letter,1);
}
$("label").text(anagram);
0
FirebladeDan 5 Aug. 2015 im 17:22