2016-09-06 8 views
-1

私は、この配列から新しいハッシュを作成したいアレイ[[email protected],[email protected]] は、結果がでなければなりませんしました:任意の助けどのように私はjavascriptで配列からハッシュを作成するのですか?

users: [ 
     { 
      name: "name1", 
      email: "[email protected]" 
     }, 
     { 
      name: "name2", 
      email:"[email protected] 
     } 
     ] 

ありがとう!

+0

だけので、あなたが知っている、それらのもののための用語は、Rubyの「ハッシュ」へのJavascriptの最も近い同等の何、「オブジェクト」です。 – 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);

1
var arr = ['[email protected]','[email protected]']; 
arr = arr.map(node => { 
    var ta = node.split('-'); 
    return { 
     name : ta[0], 
     email : ta[1] 
    } 
}); 

var users = {users : arr}; 

私は難しさを知らない...

関連する問題