简体   繁体   English

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

[英]How do I create a hash from an array by JavaScript?

I've an Array, [name1-name1@email.com,name2-name2@email.com] .我有一个数组, [name1-name1@email.com,name2-name2@email.com]

I want to create a new Hash from this Array.我想从这个数组创建一个新的哈希。 The result should be:结果应该是:

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

In JavaScript, you could use Array#map and String#split and objects for the result.在 JavaScript 中,您可以使用Array#mapString#split以及对象作为结果。

This solution features a - as the separator.此解决方案以-作为分隔符。 This might not work for all emails, because - is an allowed character for emails.这可能不适用于所有电子邮件,因为-是电子邮件的允许字符。 In this case, I suggest to use a different separator, like |在这种情况下,我建议使用不同的分隔符,例如| . .

 var data = ['name1-name1@email.com', 'name2-name2@email.com'], users = data.map(function (a) { var aa = a.split('-'); return { name: aa[0], email: aa[1] }; }); console.log(users);

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

I do not know the difficulty ...不知道难度...

 var names = ['name1-name1@email.com','name2-name2@email.com']; 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);

试试这个。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM