真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Object.fromEntries方法怎么在ES10中使用-創(chuàng)新互聯(lián)

本篇文章為大家展示了Object.fromEntries方法怎么在ES10中使用,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、豐鎮(zhèn)網(wǎng)站維護(hù)、網(wǎng)站推廣。

Object.fromEntries 方法就是 entries 的逆操作,作用是將一個鍵值對數(shù)組轉(zhuǎn)化為一個對象

同樣的該方法也已經(jīng)成為 ES10 中 stage4 提案:

Object.fromEntries方法怎么在ES10中使用

Object.entries

在介紹 fromEntries 之前,回顧一下 entries 的用法。這個方法返回的是對象自身的、可枚舉的屬性組成的數(shù)組:

const obj = { a: '1', b: 2 }
Object.entries(obj)

Object.fromEntries方法怎么在ES10中使用

也可以通過 new Map 構(gòu)造函數(shù)將對象轉(zhuǎn)為 Map:

new Map(Object.entries(obj))
// Map(2) {"a" => "1", "b" => 2}

Object.fromEntries方法怎么在ES10中使用

Object.fromEntries

fromEntries 方法則剛好相反,將數(shù)組轉(zhuǎn)為對象:

Object.fromEntries([['a', '1'], ['b', 2]])

Object.fromEntries方法怎么在ES10中使用

當(dāng)然也可以傳入一個 Map 將其轉(zhuǎn)為對象:

const map = new Map().set('a', 1).set('b', 2)

Object.fromEntries(map)

Object.fromEntries方法怎么在ES10中使用

幾個注意事項(xiàng)

當(dāng)傳入的參數(shù)中有重復(fù)出現(xiàn)的 key:

傳入給 fromEntries 的參數(shù),如果有重復(fù)的 key 出現(xiàn),后面的會被采用:

Object.fromEntries([['a', '1'], ['a', '2']])

Object.fromEntries方法怎么在ES10中使用

雖然 entries 不支持 symbol 作為 key,但 fromEntries 卻可以:

Object.fromEntries([[s, 1]])
Object.entries({ s: 1 })

上述代碼效果如下,entreis 接收的對象中如果有 symbol 作為 key 會直接被轉(zhuǎn)換為字符串:

Object.fromEntries方法怎么在ES10中使用

key 為字符串或 symbol 之外的類型會被強(qiáng)制轉(zhuǎn)為字符串:

Object.fromEntries方法怎么在ES10中使用

他可以接收任何類數(shù)組,如 Map 等,甚至是有自定義迭代器的對象:

obj = {}
obj[Symbol.iterator] = function* () {
  yield [1, 11]
  yield [2, 22]
  yield [3, 33]
}

console.dir(Object.fromEntries(obj))

Object.fromEntries方法怎么在ES10中使用

最后還有只支持創(chuàng)建對象可遍歷的屬性

應(yīng)用:過濾屬性

定義一個函數(shù),這個函數(shù)第一個參數(shù)為對象,另外接收其他幾個參數(shù)作為需要保留的屬性

function foo(obj, ...keys) {
  return Object.fromEntries(Object.entries(obj)
    .filter(([key]) => keys.includes(key))
  )
}

console.table(foo({ name: 'oli', age: '12' }, 'name'))

Object.fromEntries方法怎么在ES10中使用

應(yīng)用:處理表單

假設(shè)我們有這樣一組數(shù)據(jù):

[{
  name: 'oli',
  age: 12
}, {
  name: 'troy',
  age: 14
}]

如果需要將其填充到 csv、sql 數(shù)據(jù)庫表中,那么只需要如下方法過濾數(shù)據(jù):

arr = [{
  name: 'oli',
  age: 12
}, {
  name: 'troy',
  age: 14
}]

obj = Object.fromEntries(
  arr.map(({name, age}) => [name, age])
)

console.table(obj)

Object.fromEntries方法怎么在ES10中使用

數(shù)據(jù)過濾完畢后就可以很輕松的粘貼到 Excel 表格或方便的存儲到數(shù)據(jù)庫中

應(yīng)用:交換屬性和值

function foo(obj) {
  return Object.fromEntries(Object.entries(obj)
    .map(([key, value]) => [value, key])
  )
}

console.table({ name: 'oli', age: '12' })
console.table(foo({ name: 'oli', age: '12' }))

Object.fromEntries方法怎么在ES10中使用

還有其他通過使用數(shù)組方法來實(shí)現(xiàn)的各種功能,這里就不一一展示了

應(yīng)用:將 url 查詢字符串轉(zhuǎn)為對象

query = Object.fromEntries(new URLSearchParams('foo=bar&baz=qux'))
// {foo: "bar", baz: "qux"}

Object.fromEntries方法怎么在ES10中使用

測試環(huán)境

想要嘗試的童鞋,需要下載 chrome 測試版,保證 chrome 瀏覽器版本要大于 73:

Object.fromEntries方法怎么在ES10中使用

上述內(nèi)容就是Object.fromEntries方法怎么在ES10中使用,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前題目:Object.fromEntries方法怎么在ES10中使用-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://weahome.cn/article/csihci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部