欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

三種在ES6中將非數(shù)組轉(zhuǎn)換為數(shù)組的方法詳情

 更新時間:2022年08月09日 09:43:43   作者:豬痞惡霸  
這篇文章主要介紹了三種在ES6中將非數(shù)組轉(zhuǎn)換為數(shù)組的方法詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下

前言:

我們常常想使用數(shù)組的方法,比如forEach,filter,又或者some等等來處理非數(shù)組的數(shù)據(jù)類型,那么在這些場景下,我們就需要將非數(shù)組轉(zhuǎn)換為數(shù)組,而在ES6新增了三種數(shù)組轉(zhuǎn)換方法,分別為**Array.form()** ,Array.of() 與擴展運算符,三種轉(zhuǎn)換方法各有不同的轉(zhuǎn)換對象,下面我們來分別看看。

Array.from()

轉(zhuǎn)換數(shù)組方法Array.from()可以將對象轉(zhuǎn)化為真正的數(shù)組,對象包括了兩種,分別是:類數(shù)組對象含有迭代器的對象

類數(shù)組對象轉(zhuǎn)換實例

類數(shù)組對象的表現(xiàn)形式是以0,1數(shù)字作為鍵的一種對象形式,而使用Array.from()轉(zhuǎn)換后,它的值將被轉(zhuǎn)換為數(shù)組形式

let arrObj = {
 ?"0": "豬痞惡霸",
 ?"1": "fzf404",
 ?length:2
};
let arr = Array.from(arrObj);
console.log(arr); // ['豬痞惡霸', 'fzf404']

如上,我們定義了一個arrObj的類數(shù)組對象,通過Array.from()轉(zhuǎn)換方法將其轉(zhuǎn)換為數(shù)組得到['豬痞惡霸', 'fzf404']。

可能讀者看到這里想說:轉(zhuǎn)換成數(shù)組有什么用途啊,不能光學語法是不是,那么下面來看類數(shù)組對象轉(zhuǎn)換數(shù)組真正的實際應用。

類數(shù)組對象轉(zhuǎn)換應用

在開發(fā)中,我們操作DOM會用到節(jié)點列表,通過document.querySelectorAll()獲取,如下圖,可以清晰得了解到,我們拿到的節(jié)點列表是類數(shù)組對象,所以無法直接使用數(shù)組的一些方法,比如forEach,又或者是filter等等。

所以需要使用Array.form()方法將其轉(zhuǎn)換為真正的數(shù)組,再使用數(shù)組方法進行一些額外操作

含有迭代器對象轉(zhuǎn)換實例

Array.form()還可以將含有迭代器的對象轉(zhuǎn)換為真正的數(shù)組,比如字符串,map或者是set,下面來看看它的使用

let str = "豬痞惡霸"
let strArr = Array.from(str)
console.log(strArray) // [ '豬', '痞', '惡', '霸' ]

拿字符串舉例,轉(zhuǎn)換為數(shù)組后,每個元素對應著字符串每一個字符,我們之前經(jīng)常為切割字符串而煩惱,需要去使用正則切割,現(xiàn)在只需要Array.from(str)一行代碼來完成字符串的割離。

這里的應用我不再舉例,轉(zhuǎn)換數(shù)組應用的本質(zhì)都是為了更好地使用數(shù)組的方法去操控處理數(shù)據(jù),而Array.from還有第二個參數(shù)

Array.from()的第二個參數(shù)

第二個參數(shù)比較像數(shù)組的map方法,作為一個回調(diào)函數(shù)來處理轉(zhuǎn)換后數(shù)據(jù)的每一個元素

let str = "豬痞惡霸"
let _str = Array.form(str, (item) => {
 ? ?return item+item
})
console.log(_str) // [ '豬豬', '痞痞', '惡惡', '霸霸' ]

上面的操作,我模擬了字符串的處理,常??梢允褂谜齽t處理字符串,當然這就可以聯(lián)想到我們可以使用這種方法來處理用戶輸入的內(nèi)容,也可以防御惡意輸入的產(chǎn)生。

以上就是將類數(shù)組對象又或者是含有迭代器的對象轉(zhuǎn)換成數(shù)組的Array.from()方法,下面我們來看第二種Array.of

Array.of()

Array.of()可以將一組值轉(zhuǎn)換成數(shù)組,其實他的真正實際應用是初始化數(shù)組。

let arr = Array(1,2,3)
console.log(arr) // [ 1, 2, 3 ]

知道的人會說:不是有Array()嗎,為何要多此一舉使用Array.of()呢?

其實Array.of()的出現(xiàn)不是偶然,它彌補了Array()作為數(shù)組構(gòu)造函數(shù)的不足

let arr = new Array(3)
console.log(arr) // [ <3 empty items> ]

如上,只傳入3作為參數(shù)得到[ <3 empty items> ]也就是[,,,]的數(shù)組,而當我們傳入3個及以上個數(shù)的參數(shù)后,其構(gòu)造的數(shù)組與傳入3個以內(nèi)有所不同,也就是說由Array構(gòu)造的數(shù)組不統(tǒng)一

let arr = new Array(3, 2, 1);
console.log(arr); // [ 3, 2, 1 ]

這也就是為什么要使用Array.of()代替Array的原因

看完這兩種使用數(shù)組直屬方法轉(zhuǎn)換數(shù)組后,我們來看看如何使用擴展運算符來轉(zhuǎn)換數(shù)組

擴展運算符

可以通過使用擴展運算符將含有迭代器的對象轉(zhuǎn)化為真正的數(shù)組,比如節(jié)點列表,或者類數(shù)組對象,所謂的節(jié)點列表常常在我們使用dom操作的時候獲取dom列表再將其轉(zhuǎn)化為數(shù)組,方便使用一些好用的數(shù)組方法。

let domlist = document.querySelectorAll('div');
let arr = [...domlist]

類數(shù)組對象必須含有迭代器才能使用這種方法轉(zhuǎn)化,如果不含有則可以使用Array.from()來轉(zhuǎn)化

let objArr = {
 ? ?'0':'hogskin',
 ? ?'1':'豬痞惡霸'
}
console.log([...objArr]) // objArr is not iterable

mapset也可以使用這種方法轉(zhuǎn)換,當然生成器函數(shù)也可以,因為其返回的是一個遍歷器對象,內(nèi)含迭代器

最后

到此這篇關(guān)于三種在ES6中將非數(shù)組轉(zhuǎn)換為數(shù)組的方法詳情的文章就介紹到這了,更多相關(guān)ES6數(shù)組轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript表單驗證示例詳解

    JavaScript表單驗證示例詳解

    這篇文章主要為大家詳細介紹了JavaScript表單驗證示例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 淺析javaScript中的淺拷貝和深拷貝

    淺析javaScript中的淺拷貝和深拷貝

    本篇文章主要介紹了淺析javaScript中的淺拷貝和深拷貝,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • js顯示世界時間示例(包括世界各大城市)

    js顯示世界時間示例(包括世界各大城市)

    這篇文章主要介紹了js顯示世界時間的方法,可現(xiàn)實世界各大城市的當前時間,涉及JavaScript針對時間的獲取與運算操作技巧,需要的朋友可以參考下
    2016-04-04
  • createObjectURL方法實現(xiàn)本地圖片預覽

    createObjectURL方法實現(xiàn)本地圖片預覽

    這篇文章主要為大家詳細介紹了createObjectURL方法實現(xiàn)本地圖片預覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 使用原生JS添加進場和退場動畫詳解

    使用原生JS添加進場和退場動畫詳解

    總所周知啊,身為一個合格的前端搬磚工,會編寫并且添加一些基礎(chǔ)的動畫效果可謂是比較基礎(chǔ)且輕車熟路的技能了。本文將教大家如何使用原生JS添加進場和退場動畫,感興趣的可以了解一下
    2022-10-10
  • JavaScript學習筆記之創(chuàng)建對象

    JavaScript學習筆記之創(chuàng)建對象

    在JavaScript中對象是一種基本的數(shù)據(jù)類型,在數(shù)據(jù)結(jié)構(gòu)上是一種散列表,可以看作是屬性的無序集合,除了原始值其他一切都是對象。這篇文章主要給大家介紹JavaScript學習筆記之創(chuàng)建對象,需要的朋友參考下吧
    2016-03-03
  • JSON.parse 解析字符串出錯的解決方法

    JSON.parse 解析字符串出錯的解決方法

    程序中很多數(shù)據(jù)是動態(tài)拼接而成的json數(shù)據(jù),最近在用json的時候老是現(xiàn)JSON.parse錯誤
    2010-07-07
  • 配置Webpack?SourceMap?實踐教程

    配置Webpack?SourceMap?實踐教程

    這篇文章主要介紹了如何配置Webpack?SourceMap,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • 圖片無縫滾動代碼(向左/向下/向上)

    圖片無縫滾動代碼(向左/向下/向上)

    想必大家都注意到marquee的不循環(huán)滾動,所以出現(xiàn)了很多替代腳本,接下來為大家詳細介紹下:向左滾動/圖片左無縫滾動/向下滾動/圖片下無縫滾動/向上滾動的實現(xiàn)
    2013-04-04
  • javascript 四十條常用技巧大全

    javascript 四十條常用技巧大全

    本文給大家整理了有關(guān)js四十條常用技巧,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09

最新評論