2016-07-30 16 views
-1

私は、2つの配列データデータの配列とforループを使用してオブジェクトをインスタンス化する方法は?

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

そして、私は上記のデータを使用して作成するオブジェクトの名前を持つ別の1のものを持っています。

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

これは私が得ることを期待

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

プロトタイプクラスです:値を持つことになります

A1:タイトル: "1"、アップローダー: "A"、秒を:1

a2の値を持つタイトル:「2」、アップローダ:「b」、秒:2

残りと同じです。

また、以下のタスクを完了する別の方法がありますか?

5つのビデオオブジェクトをインスタンス化するために、データの配列とforループを使用します。

+1

どのタスクですか?この質問は私には分かりません... – Rayon

+1

"オブジェクトの名前"とはどういう意味ですか?オブジェクトには名前がありません。彼らは、変数、配列、または別のオブジェクトに保持することができます... –

+0

私は5つのクラスのインスタンスを作成するために、データの配列とforループを使用する必要があります。 – Cerber

答えて

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); 
関連する問題