2016-09-30 36 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

所以,你要{SAM: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);