如何通过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};