成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你知道Object.entries(),但你還知道有Object.fromEntries()嗎?

開發 前端
我們得到 object.entries(),它轉換一個object → array。但是,如果您想做相反的事情怎么辦?不用再想了! 使用 Object.fromEntries() 來array → object 。

我們得到 object.entries(),它轉換一個object → array。但是,如果您想做相反的事情怎么辦?不用再想了! 使用 Object.fromEntries() 來array → object 。

  1. const keyValuePair = [ 
  2.   ['cow', ''], 
  3.   ['pig', ''], 
  4. ]; 
  5. Object.fromEntries(keyValuePair); 
  6. // { cow: '', pig: '' } 

Object.fromEntries

我們先指出對象的解剖方法,對象是有一個鍵和一個值的東西。

  1. const object = { 
  2.   key: 'value', 
  3. }; 

如果我們想將某物轉換為對象,我們需要傳遞具有這兩個要求的東西:key 和 value。

  • 具有嵌套鍵值對的數組
  • Map對象

用Object.fromEntries將數組轉為對象

這是帶有鍵值對的嵌套數組

  1. const nestedArray = [ 
  2.   ['key 1', 'value 1'], 
  3.   ['key 2', 'value 2'], 
  4. ]; 

當我們將 Object.fromEntries 應用于它時,我們可以從中獲取對象。

  1. Object.fromEntries(nestedArray); 
  2. // { key 1: "value 1", key 2: "value 2"} 

用Object.fromEntries將Map轉為對象

JavaScript ES6為我們帶來了一個名為map的新對象,它與對象非常相似。

讓我們創建新的Map對象

  1. // 使用構造函數 
  2. const map = new Map([ 
  3.   ['key 1', 'value 1'], 
  4.   ['key 2', 'value 2'], 
  5. ]); 
  6. // 或者我們可以使用實例方法,"set" 
  7. const map = new Map(); 
  8. map.set('key 1', 'value 1'); 
  9. map.set('key 2', 'value 2'); 
  10. // 結果 
  11. // Map(2) {"key 1" => "value 1", "key 2" => "value 2"} 

現在,我們使用 Object.fromEntries 將Map轉換為對象

  1. Object.fromEntries(map); 
  2. // { key 1: "value 1", key 2: "value 2"} 

Object.fromEntries與其他類型的類型錯誤

當你試圖將其他數據類型傳遞到 Object.fromEntries 時,請小心,所有這些都會拋出一個錯誤

❌ 未捕獲的類型錯誤(Uncaught TypeError)

你知道Object.entries(),但你還知道有Object.fromEntries()嗎? 

確保只傳遞鍵值對。

Object.fromEntries vs Object.entries

Object.fromEntries 與 Object.entries 的效果相反。所以 Object. entries 將轉換我們的數組并返回一個新的嵌套的鍵值對數組。而 Object.fromEntries 將把這個數組轉回一個對象。

  1. const object = { key1: 'value1', key2: 'value2' }; 
  2. const array = Object.entries(object); 
  3. // [ ["key1", "value1"], ["key2", "value2"] ] 
  4. Object.fromEntries(array); 
  5. // { key1: 'value1', key2: 'value2' } 

Object到Object的轉換

如果你閱讀了原始的TC39提案,這就是引入此新方法的原因。隨著 Object.entries 的引入,沒有一種簡單的方法可以將結果轉換回對象。

通常,當我們選擇使用 Object.entries 時,是因為它使我們可以訪問許多漂亮的數組方法,例如 filter。但是在完成轉換之后,我們有點被該數組所困擾。

  1. const food = { meat: '', broccoli: '', carrot: '' }; 
  2. //  Stuck in Array land 
  3. const vegetarian = Object.entries(food).filter( 
  4.   ([key, value]) => key !== 'meat', 
  5. ); 
  6. // [ ["broccoli", ""], ["carrot", ""] ] 

我們可以利用所有這些有用的數組方法,但仍然可以找回我們的對象,最后,從對象到對象的轉換 。

  1. const food = { meat: '', broccoli: '', carrot: '' }; 
  2. //  Yay, still in Object land 
  3. const vegetarian = Object.fromEntries( 
  4.   Object.entries(food).filter(([key, value]) => key !== 'meat'), 
  5. ); 
  6. // { broccoli: '', carrot: '' } 

瀏覽器支持

除了Internet Explorer,大多數主流瀏覽器都支持此方法 。

你知道Object.entries(),但你還知道有Object.fromEntries()嗎?

如果對你有所啟發和幫助,可以點個關注、收藏、轉發,也可以留言討論,這是對作者的最大鼓勵。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-06-24 08:27:36

ES數組對象

2022-07-05 08:34:22

虛擬機JavaJVM

2019-11-21 14:56:40

特殊文件Linux開發

2022-08-02 10:01:34

Import語句ES模塊

2023-01-31 09:02:24

JSVMVR

2023-04-26 10:21:04

2016-01-04 11:03:53

手柄vr輸入設備

2024-06-14 07:59:00

2018-01-25 21:32:24

Emoji表情iPhone

2016-09-29 15:49:08

hadoop大數據領域

2018-01-10 08:27:00

2019-07-04 05:22:02

物聯網設備物聯網IOT

2010-11-23 10:21:53

跳槽

2023-01-28 10:27:04

2022-09-14 08:11:06

分頁模糊查詢

2020-03-23 08:31:13

網絡時延時延網絡

2023-04-26 10:06:08

RocketMQ屬性Consumer

2023-02-25 16:02:48

2022-06-01 07:10:43

遞歸字典極限

2010-09-17 16:16:05

無線接入技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美炮房 | h视频免费在线观看 | 久久精品国产久精国产 | 中文字幕精品视频 | 91在线视频网址 | 久久99精品久久久久久狂牛 | а天堂中文最新一区二区三区 | 国产一级片精品 | 91免费看片神器 | 国产精品区一区二区三 | 国产一区二区免费在线 | 欧美激情亚洲天堂 | 日本黄色一级片视频 | 国产精品视频一区二区三区四蜜臂 | 国产精品综合网 | 国产免费观看视频 | 天天干天天干 | 免费在线视频一区二区 | 亚洲人成人一区二区在线观看 | 久久精品视频在线观看 | 一区二区日本 | 亚洲精品乱码久久久久久蜜桃91 | 成人久久久| 精品国产乱码久久久久久闺蜜 | 中文区中文字幕免费看 | 91av视频 | 日韩欧美一级精品久久 | 亚洲精品一区在线 | 伊人久久大香线 | 欧美一级免费黄色片 | 亚洲日本欧美日韩高观看 | 一区观看| 夜夜操操操| 欧美精品片 | 中文字幕在线欧美 | 精品视频一区二区三区 | 亚洲午夜视频 | 欧美久久久网站 | 国产一区二区影院 | 午夜视频免费网站 | 日韩精品一二三区 |