亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在我的 React JS 示例中,Array.from(object) 不會將對象轉換為數組

在我的 React JS 示例中,Array.from(object) 不會將對象轉換為數組

DIEA 2023-04-01 16:29:15
我試圖接受一個對象并將其轉換為數組,以便我可以使用 map 函數在我的 React 應用程序中呈現它。我發現有兩種方法可以將對象轉換為數組,一種是使用Array.from(object),另一種是Object.values(object). 當我使用第二種方法時,我的 React 應用程序運行良好。但是如果我使用第一種方法,我得到一個空數組,但是當我控制臺記錄數組的長度時,它顯示數組的實際長度,在我的例子中是 3。此外,undefined在我的例子中,值存儲在數組中。請找到以下代碼段。const Example = () => {let object = {  productName : "Desktop",  quantity: 2,  price: 4000,  length:3};let arr = Array.from(object);console.log(arr.length);console.log(arr);  return (           <div>              <ul>                                  {arr.map((item,k) => <li key={k}>{item}</li>)}              </ul>           </div>         );};ReactDOM.render(    <Example />,document.getElementById("react"));<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script><div id="react"></div>
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

Array.from期望一個值具有length每個元素的屬性和編號屬性。像這樣:


var arrayLike = {

    0: "hello",

    1: "hello again",

    2: "goodbye",

    length: 3,

};

(旁注:Array.from也適用于可迭代對象,但那是另外一回事了)


你的對象不是那樣的。您擁有該length屬性,因此它為您提供了一個長度為 3 的數組,但您沒有0、1或2屬性。


如果您實際上不需要對屬性名稱(產品名稱、數量、價格)做任何事情,那么我認為您最好使用 ,Object.values但請記住,還有它Object.entries允許您使用屬性名稱和它們成對的值:


{Object.entries(object).map(

    ([key, value]) => <li key={key}>{key} - {value}</li>

)}


查看完整回答
反對 回復 2023-04-01
  • 1 回答
  • 0 關注
  • 259 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號