4 回答

TA貢獻1816條經驗 獲得超4個贊
您需要將單引號替換為雙引號并將字符串括在方括號中以獲取數組數組。
const
string = "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]",
array = JSON.parse(`[${string.replace(/'/g, '"')}]`);
console.log(array);
eval如果數據可靠,另一種方法是使用。
const
string = "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]",
array = eval(`[${string}]`);
console.log(array);

TA貢獻1752條經驗 獲得超4個贊
您可以使用JSON.parse將字符串轉換為數組。在這里,請注意單引號。在使用 之前JSON.parse,您需要將單引號 ( ') 轉換為雙引號 ( ")。
var str = "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]";
var parsedArray = JSON.parse(`[${str.replaceAll("'", '"')}]`);
console.log(parsedArray);

TA貢獻1798條經驗 獲得超7個贊
如果你被迫使用這個字符串,那么你必須“讓它”看起來像 JSON,但請注意這是一個非常糟糕的主意,你應該考慮在后端做一些其他事情以便將 JSON 字符串發送到前端end,而不是具有某種格式的字符串。
如果你想冒險,你可以這樣做:
let res = JSON.parse('[' + "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]".replaceAll("'", '"') + ']')
console.log(res)

TA貢獻1856條經驗 獲得超17個贊
您可以使用
JSON.parse(string);
UPD:我沒有注意到使用了 JSON 不兼容的單引號。
我建議只用雙引號替換它們:
const jsonCompatString = string.replace(/'/g, `"`);
const serverData = JSON.parse(jsonCompatString);
添加回答
舉報