2016-09-30 38 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);