簡體   English   中英

將字符串數組轉換為 JAVASCRIPT object

[英]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 不適用於非序列化字符串。

使用Object.fromEntries()

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM