2017-06-02 15 views
0

私は2つの配列をキーと値のペアとしてオブジェクトに格納しようとしています。プッシュはオブジェクトで動作しないので、これをどのように達成するのですか?Javascriptで1つのオブジェクトに2つの配列をキーと値のペアとして格納する方法は?

はJavaScript

var data = {}; 
var array1 = ['name', 'lastname']; 
var array2 = ['john','doe']; 

所望の出力:

console.log(data); 
data: { 
    name: john, 
    lastname: doe 
} 
+0

'array1.reduce((OBJ、キー、インデックス)=> {OBJ [キー] =配列2 [インデックス]; OBJを返します;}、{})' – Li357

答えて

0

あなたはArray.prototype.reduce()を使用することができます。

var array1 = ['name', 'lastname']; 
 
var array2 = ['john','doe']; 
 
var data = array1.reduce((acc, value, i) => (acc[value] = array2[i], acc), {}); 
 
console.log(data);

reduceメソッドの第2引数は初期値です。最初の引数はarray1の要素ごとに1回呼び出されるarrow functionです。 accは、初期値か前の呼び出しの戻り値です。 valueは、現在の要素のarray1です。 iは、現在の要素のインデックスです。この関数は、一致する要素array2accのプロパティに割り当て、comma operatorを使用してaccを返します。

0

希望するオブジェクトにthisArgを使用し、同じインデックスのキーと値を割り当てることができます。

var data = {}, 
 
    array1 = ['name', 'lastname'], 
 
    array2 = ['john','doe']; 
 
    
 
array1.forEach(function (k, i) { 
 
    this[k] = array2[i]; 
 
}, data); 
 

 
console.log(data);

0

あなたは、パラメータとしてcallback方法を受け入れ、このためreduce方法を、使用することができます。

var array1 = ['name', 'lastname']; 
 
var array2 = ['john','doe']; 
 
var data=array1.reduce(function(obj,elem,index){ 
 
    obj[elem]=array2[index]; 
 
    return obj; 
 
},{}); 
 
console.log(data);

関連する問題