2016-09-06 60 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);