我從這樣的 API 接收
"['item1', 'item2', 'item3']"
所以即使它看起來像一個陣列實際上是一個字串。我想再次將其轉換為陣列,所以我這樣做了。
let pseudoArray = "['item1', 'item2', 'item3']";
let actualArray = pseudoArray.slice(1, -1).split(', ');
它有點作業我只是洗掉開頭和結尾的括號,slice()并用split逗號將其分隔成一個實際的陣列。
但我覺得這不是最好的方法,有沒有更好、更干凈的方法來將此字串決議為陣列?
uj5u.com熱心網友回復:
我認為更好的方法是將所有單引號替換為雙引號。
var items = "['item1', 'item2', 'item3']";
items = items.replace(/'/g, '"') //replacing all ' with "
console.log(JSON.parse(items))
希望能幫助到你!
uj5u.com熱心網友回復:
只需反轉字符'并"獲得正確的 JSON 字串:
const str = "['item1', 'item2', 'item3']";
const mapping = {"'": '"', '"': "'"};
const jsonStr = str.replaceAll(/[\'\"]/g, (e) => mapping[e]);
const arr = JSON.parse(jsonStr);
console.log(arr);
.as-console-wrapper { max-height: 100% !important; top: 0 }
uj5u.com熱心網友回復:
您可以嘗試直接匹配字串模式,如下所示:
var items = "['item1', 'item2', 'item3']";
const array = items.match(/(?<=')[^,].*?(?=')/g);
console.log(array)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505917.html
標籤:javascript 数组
