2017-07-14 83 views
1

下面是我的字符串列表:如何將字符串列表顯示爲鍵值json pair?

var list = ["item1","item2","item3","item4"]; 

現在我想顯示具體如下輸出:

{ 
"item1" : "", 
"item2" : "", 
"item3" : "", 
"item4" : "", 
} 

我試着用這樣的:

var output = JSON.stringify(list, null, 4); 

但要象下面這樣:

[ 
    "item1", 
    "item2", 
    "item3", 
    "item4" 
] 

var list = ["item1","item2","item3","item4"]; 
 

 
var output = JSON.stringify(list, null, 4); 
 

 
console.log(output);

但我希望把中鍵值JSON pair.So我的字符串列表是有把我的字符串列表中 鍵值對不使用循環什麼簡單的辦法?

+1

爲什麼 「不循環」?幾乎任何你用數組做的事通常都涉及到一種或另一種循環。 – deceze

+0

@deceze其實我想可能是任何內置的方法將可用像json.stringify這可以做到這一點 –

回答

4

可以迭代陣列list以上,並且每個元素添加到輸出作爲鍵和「」爲值。

var list = ["item1","item2","item3","item4"]; 
 

 
var output = {}; 
 
list.forEach(function(v){ 
 
    output[v] = ""; 
 
}); 
 
output = JSON.stringify(output); 
 
console.log(output);

+0

我可以有我的輸出變量作爲字符串而不是對象? –

+0

@學習是的,你可以使用'JSON.stringify()',在代碼中添加。 – Dij

+0

但我希望我的每個項目都能像新預計的輸出一樣來到我的預期輸出 –

3

嘗試用於創建對象在一個函數。然後從功能

ES6 ​​389803

ES5

var list = ["item1", "item2", "item3", "item4"]; 
 

 
var output = list.reduce(function(a, b) { 
 
    a[b] = "" 
 
    return a 
 
}, {}) 
 

 
console.log(output);
返回對象 Array#reduce()。其

1

您應該使用reduce方法,它接受一個callback提供功能施加於每一個項目從你的陣列。

var list = ["item1","item2","item3","item4"]; 
 
var obj=list.reduce(function(obj,item){ 
 
    obj[item]=""; 
 
    return obj; 
 
},{}); 
 
console.log(obj);

相關問題