国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何在 JavaScript 中將數(shù)組轉(zhuǎn)為對象

這篇具有很好參考價值的文章主要介紹了如何在 JavaScript 中將數(shù)組轉(zhuǎn)為對象。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

首先,我們需要明白對象具有鍵和值。

const object = {
  key: 'value'
}

如果我們想把某個東西轉(zhuǎn)換成一個對象,我們需要傳遞具有這兩個要求的東西:鍵和值。

滿足這些要求的參數(shù)有兩種類型:

  • 具有嵌套鍵值對的數(shù)組
  • Map 對象

數(shù)組

這是一個帶有鍵值對的嵌套數(shù)組

const nestedArray = [
  ['key 1', 'value 1'],
  ['key 2', 'value 2']
]

當(dāng)我們應(yīng)用它時,我們可以使用 Object.fromEntries 方法獲取對象:

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

Map

ES6 為我們帶來了一個名為 Map 新的數(shù)據(jù)結(jié)構(gòu),它與 Objects 非常相似。

TC39:Map 對象是鍵/值對的集合,其中鍵和值可以是任意的 ECMAScript 語言值。

讓我們創(chuàng)建新的 map 對象。

// 使用 constructor
const map = new Map([
  ['key 1', 'value 1'],
  ['key 2', 'value 2']
])

// 或者我們可以使用實例方法 set
const map = new Map()
map.set('key 1', 'value 1')
map.set('key 2', 'value 2')

// Map(2) {"key 1" => "value 1", "key 2" => "value 2"}

現(xiàn)在讓我們使用 object.fromEntriesmap 轉(zhuǎn)換成一個對象

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

其他類型

嘗試將其他數(shù)據(jù)類型傳遞到 Object.fromEntries 時要小心。以下所以列出的所有情況將一致拋出一個錯誤:

類型
undefined Object.fromEntries(undefined)
Null Object.fromEntries(null)
Boolean Object.fromEntries(true)
Number Object.fromEntries(100)
String Object.fromEntries("hi")
Object Object.fromEntries({key: "value"})
扁平化數(shù)組 Object.fromEntries([1,2,3])

注意:確保只傳遞一個鍵值對。

Object.fromEntries 和 Object.entries

Object.entries 方法返回一個給定對象自身可枚舉屬性的鍵值對數(shù)組。

const object = { key1: 'value1', key2: 'value2' }
const array = Object.entries(object) // [ ["key1", "value1"], ["key2", "value2"] ]

Object.fromEntries(array) // { key1: 'value1', key2: 'value2' }

對象到對象轉(zhuǎn)換

你可以在最初的 TC39 提案 找到引入 Object.entries 方法的緣由。

通常,當(dāng)我們選擇使用 Object.entries 時,是因為它讓我們能夠訪問一些漂亮的數(shù)組方法。

const user = {
  name: 'O.O',
  age: 18,
  address: 'xxx'
}

console.log(Object.entries(user).filter(([key, value]) => key !== 'age'))
// [["name", "O.O"], ["address", "xxx"]]

它返回了一組嵌套數(shù)組,而不是我們想要的對象轉(zhuǎn)對象,后面又引入了 fromEntries 方便該操作。

const arr = [["name", "O.O"], ["address", "xxx"]]
console.log((Object.fromEntries(arr)) // {name: "O.O", address: "xxx"}
            
const user = {
  name: 'O.O',
  age: 18,
  address: 'xxx'
}

Object.fromEntries(Object.entries(user).filter(([key, value]) => key !== 'age'))
// {name: "O.O", address: "xxx"}

瀏覽器支持情況

除了 IE,大多數(shù)主流瀏覽器都支持這種方法:

如何在 JavaScript 中將數(shù)組轉(zhuǎn)為對象
Object.fromEntries()

替代方案

Object.fromEntries 于2019年推出,所以它仍然是相當(dāng)新的的一個方法。因此,在照顧舊瀏覽器的情況下,我們需要其他的替代方案,將一個鍵值對數(shù)組轉(zhuǎn)化為一個對象以更好的支持。

Reduce

將數(shù)組轉(zhuǎn)換為對象的一種常用方法是使用 reduce 方法

const array = [
  ['key1', 'value1'],
  ['key2', 'value2']
]

const map = new Map([
  ['key1', 'value1'],
  ['key2', 'value2']
])

function toObject(pairs) {
  return Array.from(pairs).reduce(
    (acc, [key, value]) => Object.assign(acc, { [key]: value }),
    {}
  )
}

toObject(array) // { key1: 'value1', key2: 'value2' }
toObject(map) // { key1: 'value1', key2: 'value2' }

Underscore 和 Lodash

Underscore 和 Lodash 也可將鍵值對轉(zhuǎn)換為對象。

_.object — 將陣列轉(zhuǎn)換為對象。傳遞單個[鍵、值]對列表,或鍵列表和值列表。

// Underscore
const array = [
  ['key1', 'value1'],
  ['key2', 'value2']
]

_.object(array) // { key1: 'value1', key2: 'value2' }

_.fromPairs — 此方法返回由鍵值對組成的對象。文章來源地址http://www.zghlxwxcb.cn/news/detail-430203.html

// Lodash
const array = [
  ['key1', 'value1'],
  ['key2', 'value2']
]

_.fromPairs(array) // { key1: 'value1', key2: 'value2' }

到了這里,關(guān)于如何在 JavaScript 中將數(shù)組轉(zhuǎn)為對象的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 將csv內(nèi)容轉(zhuǎn)為對象數(shù)組,它能夠正確處理由逗號分隔的數(shù)據(jù),并且能夠忽略雙引號中的逗號

    它能夠正確處理由逗號分隔的數(shù)據(jù),并且能夠忽略雙引號中的逗號。

    2024年02月12日
    瀏覽(21)
  • 4 JavaScript數(shù)組和對象

    4 JavaScript數(shù)組和對象

    4 數(shù)組和對象 在JS中創(chuàng)建數(shù)組非常簡單. 直接[ ]即可. 也可以用正規(guī)軍的new Array(). 不過效果都是一樣的. 數(shù)組的常用操作: 在JS中創(chuàng)建一個對象非常容易. 和python中的字典幾乎一樣{ }: 使用對象 從上述內(nèi)容中幾乎可以看到. JS對象的使用幾乎是沒有門檻的. 十分靈活 代碼的效果圖如

    2024年02月12日
    瀏覽(20)
  • JavaScript中刪除兩個數(shù)組對象中id相同的對象以及根據(jù)id刪除數(shù)組中對象。

    JavaScript中刪除兩個數(shù)組對象中id相同的對象以及根據(jù)id刪除數(shù)組中對象。

    1. filter方法 定義和用法 filter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。 注意 : filter() 不會對空數(shù)組進(jìn)行檢測。 注意 : filter() 不會改變原始數(shù)組。 語法 參數(shù)說明 2. some方法 定義和用法 some() 方法用于檢測數(shù)組中的元素是否滿足

    2024年02月03日
    瀏覽(26)
  • JavaScript:js數(shù)組/對象遍歷方法

    一、js遍歷方法 序號 方法 描述 1 for 使用最基本的for循環(huán)可以遍歷數(shù)組 2 for of for...of語句用來遍歷可迭代對象(包括數(shù)組、Set、Map、字符串等),它可以替代傳統(tǒng)的for循環(huán)和forEach()方法。for...of循環(huán)每次迭代都將返回一個值,而不是索引。 3 for in for...in語句用來遍歷對象的可

    2024年02月09日
    瀏覽(28)
  • javascript二維數(shù)組(20)JSON對象

    在JavaScript中,JSON對象是一種數(shù)據(jù)格式,用于存儲和傳輸數(shù)據(jù)。JSON,全稱JavaScript Object Notation,是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時也易于機(jī)器解析和生成。 JSON對象由鍵值對組成,其中鍵是字符串,值可以是字符串、數(shù)字、布爾值、null、數(shù)組或另一個J

    2024年02月07日
    瀏覽(23)
  • 在Python中將字典轉(zhuǎn)為成員變量的方法

    當(dāng)我們在Python中寫一個class時,如果有一部分的成員變量需要用一個字典來命名和賦值,此時應(yīng)該如何操作呢?這個場景最常見于從一個文件(比如json、npz之類的文件)中讀取字典變量到內(nèi)存當(dāng)中,再賦值給一個類的成員變量,或者已經(jīng)生成的實例變量。 在python中直接支持了

    2024年04月28日
    瀏覽(22)
  • Matlab中將行向量轉(zhuǎn)為列向量的方法

    Matlab中將行向量轉(zhuǎn)為列向量的方法

    在進(jìn)行一些代碼編寫的時候,可能需要將行向量轉(zhuǎn)為列向量,那么怎么去完成這件事情呢,本篇文章給大家介紹兩種簡單的方法 假設(shè)有如下代碼 這個代碼直接給C的第三個元素賦值為1,這時候Matlab會默認(rèn)其為行向量,如果我們實際需要的是列向量的話,那么可以使用下面代碼

    2024年02月11日
    瀏覽(13)
  • vue中string如何轉(zhuǎn)為json對象

    Json字符串轉(zhuǎn)換為json對象 1、使用eval 2、使用JSON.parse() eval 是javascript支持的方式,不需要嚴(yán)格的json格式的數(shù)據(jù)也可以轉(zhuǎn)化 JSON.parse 是瀏覽器支持的轉(zhuǎn)換方式,必須要標(biāo)準(zhǔn)的json格式才可以轉(zhuǎn)換 舉例: let result = eval(‘(’ + res.data.details + ‘)’); result 值為: this.goods_details = resu

    2024年02月11日
    瀏覽(13)
  • Typescript中將字符串轉(zhuǎn)為數(shù)值有哪些方法?

    在TypeScript中,將字符串轉(zhuǎn)換為數(shù)值(即字符串到數(shù)字的類型轉(zhuǎn)換)有幾種方法。以下是一些常見的方法: 1、使用全局函數(shù) parseFloat() 和 parseInt(): 2、使用 Number 構(gòu)造函數(shù): 3、使用模板字面量和 + 運算符: 4、使用 parseInt() 和 parseFloat() 方法的函數(shù)形式: 需要注意的是,這些

    2024年02月12日
    瀏覽(20)
  • 從 JavaScript 中的數(shù)組中刪除空對象

    從 JavaScript 中的數(shù)組中刪除空對象

    從數(shù)組中刪除空對象: 使用 Array.filter() 方法遍歷數(shù)組。 將每個對象傳遞給 Object.keys() 方法并檢查鍵的長度是否不等于 0。 filter 方法將返回一個不包含空對象的新數(shù)組。 我們傳遞給 Array.filter 方法的函數(shù)被數(shù)組中的每個元素(對象)調(diào)用。 如果函數(shù)返回真值,則 filter 方法將

    2024年02月01日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包