簡體   English   中英

將 React/javascript 字符串對象數組轉換為對象數組

[英]Convert React/javascript string array of objects to array of objects

這似乎是一個微不足道的問題,但我無法讓它正常工作。 我對 JS/React 還很陌生,所以這也對我不利。

這是我得到的響應(它是一個 TS object 類型,但實際上是一個普通字符串,所以我無法迭代它,它只是沒用):

[{"answer": "Within 2 weeks", "question": "Moving/Purchase date"}, {"answer": "2 bedrooms", "question": "Bedrooms (minimum) ?"}]

如何將其轉換為對象數組,以便可以遍歷它們? 像這樣;

[
    0: { "answer": "Yes", "question": "Are you sure?" },
    1: { "answer": "False", "question": "Do you hold a valid passport?" }
]

我試過做 JSON.parse 並創建一個 Map 但它沒有提供預期的 output。 任何幫助將不勝感激。 謝謝大家::)

你考慮過eval嗎?

當然,如果您的系統允許執行任意 Javascript 代碼,那么使用它是有風險的,但是如果您確定從字符串運行代碼,則在此處轉換代碼(如果它是一行代碼,則在其中的數組)字符串到數組 object 在您的環境中無害,使用它。

 let str = '[{"answer": "Within 2 weeks", "question": "Moving/Purchase date"}, {"answer": "2 bedrooms", "question": "Bedrooms (minimum)?"}]'; let obj = eval(str); console.log(obj, typeof(obj)); for (const element of obj){ console.log(element); };

我使用了 JSON.parse並且它似乎也在工作(推薦選項):

 let str = '[{"answer": "Within 2 weeks", "question": "Moving/Purchase date"}, {"answer": "2 bedrooms", "question": "Bedrooms (minimum)?"}]'; let obj = JSON.parse(str); console.log(obj, typeof(obj)); for (const element of obj){ console.log(element); };

我設法使用以下方法對其進行了排序:

const arrayObj = JSON.parse(results as unknown as string);

如果你想將它包裝在另一個 object 中,索引是鍵,那么你可以使用 reduce。

 const list = [{ "answer": "Within 2 weeks", "question": "Moving/Purchase date" }, { "answer": "2 bedrooms", "question": "Bedrooms (minimum)?" }] const newList = list.reduce((acc, x, i) => [...acc, { [i]: x }], []); console.log(newList)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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