如何通过JavaScript从数组创建哈希?

如何通过JavaScript从数组创建哈希?,javascript,arrays,hashmap,Javascript,Arrays,Hashmap,我有一个数组,[name1-name1@email.com,姓名2-name2@email.com] 我想从这个数组创建一个新的散列。结果应该是: users: [ { name: "name1", email: "name1@email.com" }, { name: "name2", email:&

我有一个数组,
[name1-name1@email.com,姓名2-name2@email.com]

我想从这个数组创建一个新的散列。结果应该是:

users: [
        {
           name: "name1",
           email: "name1@email.com"
        },
        {
           name: "name2",
           email:"name2@email.com
        }
       ]

在JavaScript中,可以使用and和对象作为结果

此解决方案以
-
作为分隔符。这可能不适用于所有电子邮件,因为
-
是电子邮件允许使用的字符。在这种情况下,我建议使用不同的分隔符,如
|

var data=['name1-name1@email.com“,”名称2-name2@email.com'],
users=data.map(函数(a){
var aa=a.分割('-');
返回{name:aa[0],email:aa[1]};
});
console.log(用户)
var name=['name1-name1@email.com“,”姓名2-name2@email.com'];
var用户=[];
对于(var i=0;i
我不知道有什么困难…

试试这个

data=['name1-name1@email.com“,”名称2-name2@email.com']

result=data.map{s|{name:s.split('-')[0],email:s.split('-')[1]}

正如您所知,Javascript最接近Ruby的“散列”的术语是“对象”。正如您所知。您正在从另一个数组创建对象数组。在JS中没有散列(无论如何还没有)。这不是假设电子邮件地址中没有其他破折号吗?@evolutionxbox,它可能只是用于分隔字符串的随机符号。最好是像
|
这样的标志,它不是电子邮件地址的一部分。
var arr = ['name1-name1@email.com','name2-name2@email.com'];
arr = arr.map(node => {
    var ta = node.split('-');
    return {
        name : ta[0],
        email : ta[1]
    }
});

var users = {users : arr};