2015-09-09 77 views
-1

鑑於陣列:如何將字符串轉換爲密鑰對象在JavaScript的數組/ lodash

var arr = [ "one", "two", "three" ]; 

請告訴我將其轉換爲清晰的方式:

{ "one": true, "two": true, "three": true } 

我嘗試以下,但我想象有更好的方法。

_.zipObject(arr || {}, _.fill([], true, 0, arr.length)) 
+0

你甚至嘗試什麼嗎? – Joseph

+0

@JosephtheDreamer是的我試過:_.zipObject(sets.Seen || {},_.fill([],true,0,sets.Seen.length)) – Steve

+0

然後最好如果你只是將它包含在後。 – Joseph

回答

9
var obj = arr.reduce(function(o, v) { return o[v] = true, o; }, {}); 
+0

這是我第一次看到'return'上的逗號運算符。有趣的http://stackoverflow.com/questions/10284536/return-statement-with-multiple-comma-seperated-values – azium

0

一個簡單的方法是這樣的:

function toObject(arr) { 
    var rv = {}; 
    for (var i = 0; i < arr.length; ++i) 
    rv[i] = true; 
    return rv; 
} 
0

var array = ["one", "two", "three"]; 
 
var myObject = new Object(); 
 

 
for (i = 0; i < array.length; i++) { 
 
    myObject[array[i]] = true; 
 
} 
 

 
console.log(myObject);

+0

不要使用'new Object()',使用對象字面值來代替'{}' –

相關問題