2016-09-30 3 views
-2

私は説明する方法を知っているか見てみましょう。どのようにこれらを反復処理を通じてオブジェクトに入れることができますか? JS

私は

["5", "sam 99912222", "bob 33312222", "tom 11122222", "harey 12299933", "echo 99914442", "sam", "edward", "harry", "hungry", "bob"] 

の配列を持っているが、私は、キーと値としてオブジェクトに"sam 99912222", "bob 33312222", "tom 11122222", "harey 12299933", "echo 99914442"を作りたいです。

どうすればいいですか?

+0

だから、あなたが望む{サム:99912222、BOD:3331222}などを、あなたは "5"、およびちょうどサム、エドワード、ハリーなどをどうするかをしたいですか – Keith

答えて

0
var myArray = ["5", "sam 99912222", "bob 33312222", "tom 11122222", "harey 12299933", "echo 99914442", "sam", "edward", "harry", "hungry", "bob"] 

var myObject = myArray.reduce(function(acc, item) { 
    var pair = item.split(' '); 
    if (pair.length === 2) { 
    acc[pair[0]] = pair[1]; 
    }; 
    return acc; 
}, {}); 
0

また、次のようにすることもできます。これは、複数のスペースを考慮に入れます。

var arr = ["5 ", "sam 99912222", " bob 33312222", " tom 11122222 ", "harey 12299933", "echo 99914442", "sam", "edward ", "harry", " hungry", "bob"], 
 
mapped = arr.map(s => /\w\s+\w/.test(s) ? s.trim() 
 
              .split(/\s+/) 
 
              .reduce((p,c) => ({[p]:c})) 
 
             : s.trim()); 
 
console.log(mapped);

関連する問題