国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

巧用 Object.assign 合并小對(duì)象

seanlook / 3370人閱讀

摘要:然而標(biāo)準(zhǔn)并沒(méi)有提供的反函數(shù)。首先把它轉(zhuǎn)換為對(duì)象數(shù)組注意箭頭后面的括號(hào)是必須的得到把他們合并起來(lái)。記得怎樣用扁平化數(shù)組么技巧類似完整代碼如下我發(fā)現(xiàn)越短的文章看的人越多,每周積累一些小技巧也是很好的新版中添加了作為的反函數(shù)

之前遇到過(guò)這樣一個(gè)問(wèn)題,把下面一段服務(wù)器返回的文本

          Server: 192.168.31.92:2181
          zk_outstanding_requests   0
         zk_approximate_data_size   145237
                   zk_max_latency   417
                   zk_avg_latency   0
                       zk_version   3.4.8--1, built on 02/06/2016 03:18 GMT
                   zk_watch_count   22
         zk_num_alive_connections   12
    zk_open_file_descriptor_count   41
                  zk_server_state   follower
                  zk_packets_sent   87679
              zk_packets_received   79118
                   zk_min_latency   0
              zk_ephemerals_count   17
                   zk_znode_count   2193
     zk_max_file_descriptor_count   4096

轉(zhuǎn)換為對(duì)象的形式。

這是一整段字符串,當(dāng)然首先要按行分割為多段。設(shè)原始字符串為 str,則

let result = str.split("
");

就獲得了一個(gè)字符串?dāng)?shù)組。每個(gè)字符串頭部都有空格,需要去除空格。

result = result.map(x => x.trim());

keyvalue 是放在同一段字符串里的,需要拆分開(kāi)

result = result.map(x => x.split(/ {3}| :/)); // 這里取巧了,實(shí)際代碼還是把第一行拆出來(lái)特殊處理比較好

這樣就得到了一個(gè)類似

[
  [ "key1", "value1" ],
  [ "key2", "value2" ],
  [ "key3", "value3" ],
  // ...
]

的嵌套數(shù)組,可以看到,它正好是某對(duì)象 Object.entries 的結(jié)果。然而 JS 標(biāo)準(zhǔn)并沒(méi)有提供 Object.entries 的反函數(shù)。

手寫(xiě)的話,很容易想到循環(huán)遍歷賦值,這里有更簡(jiǎn)單的方法。首先把它轉(zhuǎn)換為對(duì)象數(shù)組

result = result.map(([ key, value ]) => ({ [key]: value })); // 注意箭頭后面的括號(hào)是必須的

得到

[
  { "key1": "value1" },
  { "key2": "value2" },
  { "key3": "value3" },
  // ...
]

把他們合并起來(lái)。記得怎樣用 Array.object.concat 扁平化數(shù)組么?技巧類似

result = Object.assign(...result);

完整代碼如下:

Object.assign(...str.split("
").map(x => x.trim().split(/ {3}|: /)).map(([ key, value ]) => ({ [key]: value })))

PS: 我發(fā)現(xiàn)越短的文章看的人越多,每周積累一些小技巧也是很好的?

EDIT:新版 Firefox 中添加了 Object.fromEntries 作為 Object.entries 的反函數(shù)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/90162.html

相關(guān)文章

  • ES6/JavaScript一些‘巧用

    摘要:前言第一次發(fā)表文章,如有不好的地方請(qǐng)見(jiàn)諒在編寫(xiě)代碼的時(shí)候存在的一些方法和技巧,雖然有時(shí)候條條大路都通向羅馬,但是也許總會(huì)有那么一條最短的路徑可走。 前言 第一次發(fā)表文章,如有不好的地方請(qǐng)見(jiàn)諒/ 在編寫(xiě)JavaScript代碼的時(shí)候存在的一些方法和技巧,雖然有時(shí)候條條大路都通向羅馬,但是也許總會(huì)有那么一條最短的路徑可走。本文將一些都知道卻不怎么用的小技巧分享給大家/ 一些小技巧 1.n...

    zsirfs 評(píng)論0 收藏0
  • ES6/JavaScript一些‘巧用

    摘要:前言第一次發(fā)表文章,如有不好的地方請(qǐng)見(jiàn)諒在編寫(xiě)代碼的時(shí)候存在的一些方法和技巧,雖然有時(shí)候條條大路都通向羅馬,但是也許總會(huì)有那么一條最短的路徑可走。 前言 第一次發(fā)表文章,如有不好的地方請(qǐng)見(jiàn)諒/ 在編寫(xiě)JavaScript代碼的時(shí)候存在的一些方法和技巧,雖然有時(shí)候條條大路都通向羅馬,但是也許總會(huì)有那么一條最短的路徑可走。本文將一些都知道卻不怎么用的小技巧分享給大家/ 一些小技巧 1.n...

    haoguo 評(píng)論0 收藏0
  • JavaScript巧學(xué)巧用

    摘要:希望通過(guò)以下幾點(diǎn)技巧讓大家的代碼化繁為簡(jiǎn),化簡(jiǎn)為精。巧學(xué)巧用可能有人知道中提供了新的數(shù)據(jù)結(jié)構(gòu),但是能夠靈活運(yùn)用的人或許不多。利用數(shù)據(jù)結(jié)構(gòu)我們能夠輕松的去重一個(gè)數(shù)組,比如方法可以將結(jié)構(gòu)轉(zhuǎn)為數(shù)組。 關(guān)于 微信公眾號(hào):前端呼啦圈(Love-FED) 我的博客:勞卜的博客 知乎專欄:前端呼啦圈 前言 由于工作和生活上的一些變化,最近寫(xiě)文章的頻率有點(diǎn)下降了,實(shí)在不好意思,不過(guò)相信不久就會(huì)慢慢...

    iflove 評(píng)論0 收藏0
  • 對(duì)象合并及拷貝

    摘要:方法用于對(duì)象的合并,將所有自身的非繼承的可枚舉屬性的值從一個(gè)或多個(gè)源對(duì)象拷貝到目標(biāo)對(duì)象。比如,如果對(duì)象的屬性是函數(shù)或?qū)ο螅搶傩詴?huì)被過(guò)濾掉,導(dǎo)致拷貝時(shí)會(huì)缺少屬性。利用遞歸對(duì)每一層都重新創(chuàng)建對(duì)象并賦值從而實(shí)現(xiàn)深拷貝 Object.assign() Object.assign() 方法用于對(duì)象的合并,將所有自身的(非繼承的)可枚舉屬性的值從一個(gè)或多個(gè)源對(duì)象拷貝到目標(biāo)對(duì)象。返回目標(biāo)對(duì)象。目標(biāo)...

    econi 評(píng)論0 收藏0
  • ES6--對(duì)象的擴(kuò)展

    摘要:若數(shù)值字符串和布爾值做為待合并數(shù)據(jù),合并至目標(biāo)目標(biāo)對(duì)象時(shí),只有字符串會(huì)以數(shù)組形式,拷貝到目標(biāo)對(duì)象。上面代碼中,布爾值數(shù)值字符串分別轉(zhuǎn)成對(duì)應(yīng)的包裝對(duì)象,可以看到它們的原始值都在包裝對(duì)象的內(nèi)部屬性上面,這個(gè)屬性是不會(huì)被拷貝的。 延續(xù)之前的關(guān)于ES6的學(xué)習(xí)內(nèi)容整理,該篇主要是整理ES6中關(guān)于對(duì)象的擴(kuò)展,希望對(duì)大家有幫助。之前已經(jīng)整理了ES6--字符串?dāng)U展和ES6--函數(shù)擴(kuò)展,大家有興趣可以移...

    animabear 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

seanlook

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<