[英]Convert array of string to JAVASCRIPT object
我有問題,我有字符串數組
[
"Time:25/10/2019 14:49:47.41,Server:Daniel.Europe.A…itical,Area:Europe,Site:,Station:Aberdeen,Stream:",
"Time:25/10/2019 14:49:48.16,Server:Daniel.Europe.U…,Area:Europe,Site:United Kingdom,Station:,Stream:"
]
我需要將其轉換為 Object
[
{"Time" : "25/10/2019 14:49:47.41", "Server", "Daniel.Europe..", .. },
{}
]
同樣地。
JSON.parse 不適用於非序列化字符串。
var data = [ "Time:25/10/2019 14:49:47.41,Server:Daniel.Europe.A…itical,Area:Europe,Site:,Station:Aberdeen,Stream:", "Time:25/10/2019 14:49:48.16,Server:Daniel.Europe.U…,Area:Europe,Site:United Kingdom,Station:,Stream:" ] var result = data.map(v => Object.fromEntries(v.split(',').map(v => v.split(/:(.*)/))) ) console.log(result)
像這樣的東西應該工作:
input.map(v => v.split(',').map(v => {
const [key, ...value] = v.split(':');
const obj = {};
obj[key] = value.join(':');
return obj;
}))
您可以使用 map 獲得它並減少:
const arr = [ "Time:25/10/2019 14:49:47.41,Server:Daniel.Europe.A…itical,Area:Europe,Site:,Station:Aberdeen,Stream:", "Time:25/10/2019 14:49:48.16,Server:Daniel.Europe.U…,Area:Europe,Site:United Kingdom,Station:,Stream:" ] const newArr = arr.map(item => { return item.split(",").reduce((acc, curr) => { const label = curr.split(":")[0]; const value = curr.substring(label.length+1) acc[curr.split(":")[0]] = value return acc; },{}) }) console.log(newArr)
您必須用逗號和冒號分隔字符串。 唯一的問題是您的時間字符串中有一堆冒號。 這是一個開始。
var a = [ "Time:25/10/2019 14:49:47.41,Server:Daniel.Europe.A…itical,Area:Europe,Site:,Station:Aberdeen,Stream:", "Time:25/10/2019 14:49:48.16,Server:Daniel.Europe.U…,Area:Europe,Site:United Kingdom,Station:,Stream:" ]; b = a.map(function(line) { var obj = {}; line.split(",").forEach(function(item) { kv = item.split(/:(.+)/,2); obj[kv[0]]=kv[1]; }); return obj; }); console.log(b);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.