Wie 'doppelte' zahlen in ein array und speichern es in einem neuen array
Dies ist ein 2-Schritt-problem:
1.) Ich bin versucht, "doppelt", die den Inhalt eines Arrays (original-Array), speichern Sie es in ein neues array (Verdoppelt Array).
2.) Dann weisen diese beiden arrays in ein Objekt mit 2 Parametern.
Neues Objekt
Orginal Nummern
Verdoppelt Zahlen
Dies ist, was ich habe, so weit, was mache ich falsch?
var numbers = [8, 12, 5, 2, 5, 7];
var doubledNumbers = [];
function doubled(arr){
for (var i = 0; i < arr.length; i ++){
var dub = arr[i];
var dubb = dub*2;
doubledNumbers.push(dubb);
}
}
var collectionNumbers = {
orginialNumbers: numbers,
doubledNumbers: doubled(numbers)
};
console.log(collectionNumbers);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist falsch mit Ihrem aktuellen code, ist, dass Ihr
doubled
Funktion ist wieder nichts (was bedeutet, es ist die Rückkehrundefined
).Einer besseren Funktion würde wie folgt Aussehen:
Jedoch eine noch bessere Lösung wäre zu einfach, dies zu tun:
.map
ist genial.Der beste Weg, dies zu tun in Javascript ist die Verwendung der
map
Funktion:Dem argument zu
map
ist die Funktion, die es verwendet, um die Transformation der Elemente im ersten array in das Elemente in der zweiten Reihe. Es ist eine sehr nützliche Methode.Zur Beantwortung Ihrer ursprünglichen Frage, der Grund, Sie sahen undefiniert in
collectionNumbers
ist, weil man vergessen hat, zurück doubledNumbers in Ihrer Funktion (und Funktionen standardmäßig zurückundefined
.Ihre ganze routine kann vereinfacht werden zu
mithilfe von Array.anzeigen erstellen ein neues array mit der doppelten zahlen
mit Array.aus, können Sie Doppel-und return new array
JS: