I've an Array, [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.
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]} }
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.