Ich bin auf der Suche nach dieser Übung fLet schreiben Sie eine Funktion namens Join, die funktioniert genau wie die integrierte Join, aber mit reduzieren!Implementieren einer Join-Funktion, die 3 Argumente übergeben wird
Let's write a function called join that works just like the built-in join, but using reduce! If you're unfamiliar with the built-in version of join, this is how it works:
["the", "quick", "brown", "fox"].join(" "); // => "the quick brown fox"
["one", "two", "three"].join(":"); // => "one:two:three"
Part One: First, write a function called joinWith that takes three arguments: the string to join onto, the string that will be joined, and a separator. That is, it should work like this:
function joinWith(onto, next, separator) {
// YOUR CODE HERE
}
joinWith("the quick", "brown", " "); // => "the quick brown"
joinWith("one:two", "three", ":"); // => "one:two:three"
Part Two: Now, using joinWith and reduce, write join:
function join(array, separator) {
// YOUR CODE HERE
}
join(["the", "quick", "brown", "fox"], " "); // => "the quick brown fox"
join(["one", "two", "three"], ":"); // => "one:two:three"
und ich habe den folgenden Code geschrieben:
var joinWith = function(start, toAdd, separt){
\t return reduce(arguments, function(start, toAdd){
\t \t return start + separt + toAdd;
\t \t
\t }, " ");
}
joinWith("one: two", "three", ":");
" :one: two:three::"
Kann mir jemand sagen, was hier geschieht und wie ich den Separator von der Vorderseite des Strings entfernen und den Bereichen, in denen der Separator nach oben nicht zeigen soll.
Ich schätze Ihre Hilfe sehr.
Ihr Code nicht ausgeführt, 'reduce' nicht definiert ist (hast du uns gemeint e 'Array.prototype.reduce', aber das Array davor vergessen?). Warum nicht einfach 'return start + separt + toAdd;'? Warum haben Sie auch 'var joinWith' verwendet, wenn Sie bereits die Deklaration der Funktion und den Ort haben, wo Sie den Code einfügen sollten? PS: Das sieht nach Hausaufgaben aus. – ASDFGerte
Warum der 'reduce()' Aufruf. Warum ist der ganze Körper der Funktion nicht einfach 'return start + separt + toAdd'? – jfriend00
Sie zeigen nicht Ihre 'reduce()' Implementierung, aber in einem allgemeinen Sinne ist die Verwendung von 'reduce()' in 'arguments' nicht sinnvoll für diesen Zweck, weil das würde alle Argumente in der Reihenfolge * einschließlich * verarbeiten 'separt', und du hast ihm gesagt, dass er mit" "" als erstem Wert beginnen soll. Fügen Sie eine 'console.log (start, toAdd)' in Ihrem 'reduce()' Callback hinzu und Sie werden sehen, warum Sie dieses Ergebnis erhalten. – nnnnnn