2016-04-21 44 views
-3

欲陣列的逗號分隔值轉換爲JSON對象格式下面提到轉換逗號單獨值到JSON對象在Javascript

INPUT

瑞典,中國,英語,印地文

輸出

Object {swedish: swedish, chinese: chinese, english: english,hindi: hindi} 
+0

那你試試? – 2016-04-21 05:37:29

+3

'obj.data.split(',')。map(function(item){var obj = {}; obj [item] = item; return obj;})' – Rayon

+0

這裏是一個更老的「舊學校」版本:https ://jsfiddle.net/su12o2rp/ @RayonDabre你應該加上這個答案;) – 2016-04-21 05:41:04

回答

1

這將做

var temp = {"data":"swedish,chinese"} 
temp.data= temp.data.split(',').reduce((res,x)=>{ 
    res[x] = x; 
    return res 
},{}); 
console.log(temp); 

會給

{"data":{"swedish":"swedish","chinese":"chinese"}} 
+0

It Worked @jagsSparrow –

3

使用Array#map超過commaSeperated.split(',')返回數組,並用同樣的返回從callback和包裹通過.map返回arrayobject具有密鑰作爲data

var obj = { 
 
    "data": "swedish,chinese" 
 
}; 
 
var op = obj.data.split(',').map(function(item) { 
 
    var obj = {}; 
 
    obj[item] = item; 
 
    return obj; 
 
}); 
 
console.log({ 
 
    data: op 
 
});

編輯:如果期望object作爲響應,

var obj = { 
 
    "data": "swedish,chinese" 
 
}; 
 
var op = { 
 
    data: {} 
 
}; 
 
obj.data.split(',').forEach(function(item) { 
 
    op.data[item] = item; 
 
}); 
 
console.log(op);

+0

輸出數據是'object'不是數組。 – JagsSparrow

+0

@JagsSparrow,這不會有太大的區別......我已經在帖子中更新了它... – Rayon

+0

再次op op變量是數組, , 「中國」: 「中國」}''VS [ { 「瑞典」: 「瑞典」 },{ 「中國」: 「中國」 } ]' 相差很多 – JagsSparrow