2016-09-06 64 views
-1

我有一個數組[[email protected],[email protected]] 我想創建此數組中一個新的Hash,其結果應該是:如何通過javascript從數組創建哈希?

users: [ 
     { 
      name: "name1", 
      email: "[email protected]" 
     }, 
     { 
      name: "name2", 
      email:"[email protected] 
     } 
     ] 

感謝您的幫助!

+0

只要你知道,這些東西的名詞,什麼是JavaScript的最接近相當於Ruby的「散」,是「物」。 – Frxstrem

+0

只要你知道。您正在從另一個陣列創建一個對象陣列。在JS中沒有散列(還沒有)。 – evolutionxbox

回答

3

在Javascript中,您可以使用Array#mapString#split和對象作爲結果。

此靈魂特徵爲-作爲分隔符。這可能不適用於所有電子郵件,因爲-是電子郵件的允許字符。在這種情況下,我建議使用不同的分隔符,如|

var data = ['[email protected]', '[email protected]'], 
 
    users = data.map(function (a) { 
 
     var aa = a.split('-'); 
 
     return { name: aa[0], email: aa[1] }; 
 
    }); 
 

 
console.log(users);

+0

這不是假設電子郵件地址中沒有其他破折號嗎? – evolutionxbox

+1

@evolutionxbox,它可能只是一個用於分隔字符串的隨機符號。更好的是像'|'這樣的符號不是電子郵件地址的一部分。 –

0

var names = ['[email protected]','[email protected]']; 
 

 
var users = []; 
 
for (var i = 0; i < names.length; i++) { 
 
var splitted = names[i].split('-'); 
 
users.push({ 
 
    name: splitted[0], 
 
    email: splitted[1] 
 
}) 
 
}; 
 

 
console.log(users);