2016-07-30 15 views
-1

Ich habe zwei Arrays ein mit DatenWie verwendet man ein Array von Daten und eine for-Schleife, um Objekte zu instanziieren?

var elements = [["1","a",1],["2","b",2],["3","c",3],["4","d",4],["5","e",5]]; 

Und ein anderer mit Namen der Objekte, die ich oben unter Verwendung von Daten erstellen möchten.

var names =["a1","a2","a3","a4","a5"]; 

Dies ist der Prototyp der Klasse

var Video = function(title,uploader,seconds){ 
this.title = title; 
this.uploader = uploader; 
this.seconds = seconds; 
} 

Ich erwarte, dass zu bekommen:

a1, die Werte haben: Titel: "1", Uploader: "a", Sekunden : 1

a2 mit Werten: Titel: "2", Uploader: "b", Sekunden: 2

Gleiches mit Ruhe.

Oder ist vielleicht gibt es andere Möglichkeit, die Aufgabe unten zu vervollständigen?

Verwenden Sie ein Array von Daten und eine for-Schleife, um 5 Videoobjekte zu instanziieren.

+1

Welche Aufgabe? Diese Frage ist mir nicht klar ... – Rayon

+1

Was meinst du mit "Namen von Objekten"? Objekte haben keine Namen. Sie können in einer Variablen oder einem Array oder einem anderen Objekt gehalten werden ... –

+0

Ich muss ein Array von Daten und for-Schleife verwenden, um 5-Klassen-Instanz zu erstellen. – Cerber

Antwort

0
function Video(title, uploader, seconds) { 
    this.title = title; 
    this.uploader = uploader; 
    this.seconds = seconds; 
} 

var elements = [["1","a",1],["2","b",2],["3","c",3],["4","d",4],["5","e",5]]; 

var names =["a1","a2","a3","a4","a5"]; 

// create instances 
var videos = elements.map(data => new Video(...data)); 

// add them to hashmap 
var result = names.reduce((acc, current, index) => { 
    acc[current] = videos[index]; 
    return acc; 
    }, {}); 

console.log(result);