2017-06-02 49 views
0

我想將兩個數組作爲鍵值對存儲到一個對象中。由於推送不適用於對象,我如何實現這一目標?如何將兩個數組作爲鍵值對存儲在Javascript中的一個對象中?

的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方法的第二個參數是初始值。第一個參數是一個arrow function,每個元素array1被調用一次。 acc是之前調用的初始值或返回值。 valuearray1的當前元素。 i是當前元素的索引。此功能將匹配元素array2分配給acc的屬性,並使用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

您可以使用此reduce方法,它接受一個callback方法參數。

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);

相關問題