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

【JavaScript】數(shù)組方法 (ES6)

這篇具有很好參考價(jià)值的文章主要介紹了【JavaScript】數(shù)組方法 (ES6)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

實(shí)例方法

find

arr.find(callback) 用于獲取第 1 個(gè)符合要求的元素:

  1. callback(item, index, arr) => boolean
    item-當(dāng)前值、index-當(dāng)前索引、arr-當(dāng)前數(shù)組
  • 返回值:callback 第一次返回 true 的對(duì)應(yīng) item;如果沒(méi)有符合的元素,則返回 undefined
const arr = [50, 10, 201, 103, 62, 81];
const res = arr.find(val => val > 100);
console.log(res); // 201

findIndex

arr.findIndex(callback) 用于獲取第 1 個(gè)符合要求的元素的下標(biāo):

  1. callback(item, index, arr) => boolean
    item-當(dāng)前值、index-當(dāng)前索引、arr-當(dāng)前數(shù)組
  • 返回值:callback 第一次返回 true 的對(duì)應(yīng) index;如果沒(méi)有符合的元素,則返回 -1
const arr = [{ name: 'aa' }, { name: 'bb' }]; // 數(shù)組元素為對(duì)象
const res = arr.findIndex(val => val.name == 'bb');
console.log(res); // 1

fill

arr.fill(value[, start[, end]]) 用于填充數(shù)組:

  1. value:用于填充數(shù)組的值
  2. start:開(kāi)始填充的下標(biāo)(包含),默認(rèn)為 0
  3. end:結(jié)束填充的下標(biāo)(不包含),默認(rèn)為 arr.length
  • 會(huì)改變?cè)瓟?shù)組
  • 返回值:填充后的新數(shù)組
const arr1 = new Array(3);
arr1.fill('pad');
console.log(arr1); // ['pad', 'pad', 'pad']

const arr2 = new Array(5);
arr2.fill('pad', 1, 3);
console.log(arr2); // [empty, 'pad', 'pad', empty × 2]

fill 的填充操作可以認(rèn)為是 “賦值”。所以填充引用類(lèi)型數(shù)據(jù)時(shí),其實(shí)所有元素都指向同一個(gè)地址:

const arr = new Array(3);
arr.fill({ name: 'cc' });
arr[0].name = 'aa'; // 修改其中一項(xiàng)
console.log(arr); // [{name: "aa"}, {name: "aa"}, {name: "aa"}]

可以先為空數(shù)組填充 null,再通過(guò) map()null 修改為對(duì)象 {}。這樣填充的數(shù)組元素就是不同的對(duì)象啦。

必須先為空數(shù)組填充 null,因?yàn)?map 會(huì)跳過(guò)空項(xiàng),不對(duì)其進(jìn)行操作。

const nullArr = new Array(3).fill(null);
const arr = nullArr.map(() => ({}));
arr[0].name = 'aa';
console.log(arr); // [{name:'aa'}, {}, {}]

includes

arr.includes(value) 用于查看數(shù)組中是否包含指定數(shù)據(jù):

  1. value:查找的數(shù)據(jù)
  • 返回值:找到指定數(shù)據(jù),則返回 true;否則返回 false
const arr = ['apple', 'origan', 'banana'];
const a = arr.includes('apple');
console.log(a); // true

const b = arr.includes('pear');
console.log(b); // false

Array.prototype.indexOf 方法有 2 個(gè)缺點(diǎn):
① 不夠語(yǔ)義化,它是找到參數(shù)值的第 1 次出現(xiàn)位置,所以要去比較返回值是否等于 -1,表達(dá)起來(lái)不夠直觀
② 內(nèi)部使用嚴(yán)格相等運(yùn)算符 === 進(jìn)行判斷,因?yàn)?NaN !== NaN,所以不能檢測(cè) NaN 是否在數(shù)組中

const arr = [1, NaN];
console.log(arr.indexOf(NaN)); // -1
console.log(arr.includes(NaN)); // true

注意:任何字符串查找空字符串 '',都返回 true

'asd'.inciudes(''); // true



靜態(tài)方法

isArray

Array.isArray(value) 用于判斷參數(shù)是不是數(shù)組:

  • 返回值:value 是數(shù)組 則返回 true;value 不是數(shù)組 則返回 false
const arr = [1, 2, 4, 5, 3];
const result = Array.isArray(arr);
console.log(result); // true

from

Array.from(arrObj[, callback[, thisObj]]) 可基于 [類(lèi)數(shù)組對(duì)象] / [可迭代對(duì)象] 創(chuàng)建一個(gè)新的、淺拷貝的數(shù)組

  1. arrObj:類(lèi)數(shù)組對(duì)象 / 可迭代對(duì)象
  2. callback(item, index) => newItem
    item-當(dāng)前數(shù)據(jù)項(xiàng)、index-當(dāng)前數(shù)據(jù)項(xiàng)的索引
    newItem 默認(rèn)為 item
  3. thisObjcallbackthis 指向(箭頭函數(shù)不生效 thisObj 配置項(xiàng))
  • 返回值:新創(chuàng)建的、淺拷貝的數(shù)組
const arr = [1, 1, 2];
const newArr = Array.from(new Set(arr)); // 轉(zhuǎn) Set 可去重; set 為可迭代對(duì)象
console.log('newArr', newArr); // newArr [ 1, 2 ]
const arr = [1, 1, 2];
const newArr = Array.from(new Set(arr), item => item * 2);
console.log('newArr', newArr); // newArr [ 2, 4 ]

from 方法可以作用于 [字符串],因?yàn)樽址彩强傻鷮?duì)象:

const str = 'man';
const arr1 = Array.from(str);
console.log(arr1); // ['m', 'a', 'n']

// 這里等效于字符串的 split 方法
const arr2 = str.split('');
console.log(arr2); // ['m', 'a', 'n']

from 方法還可以作用于 [下標(biāo)為屬性名,帶 length 屬性的類(lèi)數(shù)組對(duì)象]

const obj = {
    0: 'a',
    1: 'b',
    2: 'c',
    length: 3,
};
const arr = Array.from(obj);
console.log(arr); // ["a", "b", "c"]

from 方法可用于淺拷貝數(shù)組:

const arr = [1, 2, 3];
const copyArr = Array.from(arr);
console.log('arr', arr); // arr [1, 2, 3]
console.log('copyArr', copyArr); // copyArr [1, 2, 3]

of

Array.of(data[, …]) 用于創(chuàng)建數(shù)組:

  1. data:數(shù)組的元素,可傳遞多個(gè) data 參數(shù)
  • 返回值:新創(chuàng)建的數(shù)組
const arr = Array.of('a', 'b', 'c', 'd');
console.log(arr); // [ 'a', 'b', 'c', 'd' ]

該方法的主要目的,是彌補(bǔ)數(shù)組構(gòu)造函數(shù) Array() 的不足。因?yàn)椴煌膮?shù)個(gè)數(shù),會(huì)導(dǎo)致不同的 Array() 的行為。

new Array(); // []
new Array(3); // [empty, empty, empty]
new Array(3, 11, 8); // [3, 11, 8]

Array.of(); // []
Array.of(3); // [3]
Array.of(3, 11, 8); // [3, 11, 8]



關(guān)于數(shù)組的空位

數(shù)組的空位:數(shù)組的某一個(gè)位置沒(méi)有值

const arr = [1, , 3];

ES5 對(duì)空位的處理很不一致,多數(shù)情況下會(huì)忽略空位。

  • for … in 會(huì)忽略空位
for (let i in [, ,]) {
    console.log(i);
}
  • forEachfilter、some、reduce 都會(huì)直接忽略空位
const arr = [1, , 3];
console.log(arr); // [1, empty, 3]
const newArr = arr.filter(item => true);
console.log(newArr); // [ 1, 3 ]
  • map 操作元素時(shí),會(huì)保留空位 (及跳過(guò)空位,不對(duì)其進(jìn)行操作)
const arr = [1, , 3];
const newArr = arr.map(item => item + 1);
console.log(newArr); // [2, empty, 4]
  • jointoString 會(huì)將空位處理成空字符串 ''
const arr = [1, , 3];
console.log(arr); // [1, empty, 3]
const str = arr.join(',');
console.log(str); // 1,,3

ES6 則是明確將空位轉(zhuǎn)為 undefined

  • for … of 會(huì)遍歷空位
for (let i of [, ,]) {
    console.log(i); // undefined undefined  最后一個(gè) , 會(huì)被視為尾逗號(hào),所以只輸出兩次
}
  • 擴(kuò)展運(yùn)算符 ...
[...['a', , 'b']]; // ["a", undefined, "b"]
  • entries、keysvalues
[...[, 'a'].keys()]; // [0,1]
[...[, 'a'].values()]; // [undefined,"a"]
[...[, 'a'].entries()]; // [[0,undefined], [1,"a"]]
  • findfindIndex
[, 'a'].find(item => true); // undefined
[, 'a'].findIndex(item => true); // 0
  • fill
new Array(3).fill('a'); // ["a","a","a"]
  • includes
let arr = ['apple', , 'banana'];
let result = arr.includes(undefined);
console.log(result); // true
  • from
Array.from(['a', , 'b']); // ["a", undefined, "b"]



相關(guān)知識(shí):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-621562.html

  1. 【JavaScript】數(shù)組簡(jiǎn)介
  2. 【JavaScript】數(shù)組實(shí)例方法 (ES5)
  3. 【JavaScript】高階數(shù)組實(shí)例方法 (ES5)

到了這里,關(guān)于【JavaScript】數(shù)組方法 (ES6)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • JavaScript ES6實(shí)現(xiàn)繼承

    JavaScript ES6實(shí)現(xiàn)繼承

    1 對(duì)象的方法補(bǔ)充 2 原型繼承關(guān)系圖 3 class方式定義類(lèi) 4 extends實(shí)現(xiàn)繼承 5 extends實(shí)現(xiàn)繼承 6 多態(tài)概念的理 function 創(chuàng)建的名稱(chēng)如果開(kāi)頭是大寫(xiě)的,那這個(gè)創(chuàng)建的不是函數(shù),是創(chuàng)建了類(lèi)。 可以把class創(chuàng)建的類(lèi)當(dāng)做是function創(chuàng)建的類(lèi)的一種語(yǔ)法糖。但是在直接使用的方面是有不同之處

    2024年02月16日
    瀏覽(26)
  • JavaScript 之 ES6 新特性

    在ES6中,模塊化成為了JavaScript的標(biāo)準(zhǔn)特性。ES6模塊化提供了一種更加優(yōu)雅和可維護(hù)的方式來(lái)組織和管理JavaScript代碼,可以有效地避免全局變量的污染和命名沖突的問(wèn)題。以下是ES6模塊化的一些主要特性: 導(dǎo)出(export): 可以通過(guò) export 將一個(gè)變量、函數(shù)或類(lèi)導(dǎo)出為一

    2024年02月07日
    瀏覽(26)
  • JavaScript Es6_3筆記

    了解構(gòu)造函數(shù)原型對(duì)象的語(yǔ)法特征,掌握 JavaScript 中面向?qū)ο缶幊痰膶?shí)現(xiàn)方式,基于面向?qū)ο缶幊趟枷雽?shí)現(xiàn) DOM 操作的封裝。 了解面向?qū)ο缶幊痰囊话闾卣?掌握基于構(gòu)造函數(shù)原型對(duì)象的邏輯封裝 掌握基于原型對(duì)象實(shí)現(xiàn)的繼承 理解什么原型鏈及其作用 能夠處理程序異常提升程

    2024年02月11日
    瀏覽(23)
  • 【ES6】JavaScript中的Symbol

    【ES6】JavaScript中的Symbol

    Symbol是JavaScript中的一種特殊的、不可變的、不可枚舉的數(shù)據(jù)類(lèi)型。它通常用于表示一個(gè)唯一的標(biāo)識(shí)符,可以作為對(duì)象的屬性鍵,確保對(duì)象的屬性鍵的唯一性和不可變性。 Symbol.for()是Symbol的一個(gè)方法,它用于創(chuàng)建一個(gè)已經(jīng)注冊(cè)的Symbol對(duì)象。當(dāng)使用Symbol.for()創(chuàng)建Symbol對(duì)象時(shí),會(huì)

    2024年02月10日
    瀏覽(28)
  • JavaScript版本ES5/ES6及后續(xù)版本

    JavaScript版本ES5/ES6及后續(xù)版本

    Brendan Eich在短短10天內(nèi)創(chuàng)建了JavaScript的第一個(gè)版本。它被稱(chēng)為摩卡,但已經(jīng)具備了現(xiàn)代JavaScript的許多基本特性! 為了吸引Java開(kāi)發(fā)人員,Mocha先是更改為L(zhǎng)iveScript,然后又更改為JavaScript然而,JavaScript與Java幾乎沒(méi)有任何關(guān)系; 微軟推出了IE,從網(wǎng)景復(fù)制JavaScript,并稱(chēng)之為JScript; 由

    2024年02月13日
    瀏覽(33)
  • 【Javascript】ES6新增之類(lèi)的認(rèn)識(shí)

    在現(xiàn)代編程語(yǔ)言中,類(lèi)是面向?qū)ο缶幊谭妒街械暮诵母拍钪弧?與函數(shù)類(lèi)似,類(lèi)本質(zhì)上是一種特殊的函數(shù),它允許我們將數(shù)據(jù)和操作封裝在一起,以創(chuàng)建具有共同行為和狀態(tài)的對(duì)象。 在類(lèi)的世界里,我們有類(lèi)表達(dá)式和類(lèi)聲明,它們各自具有自己的特性和用途。 ? 類(lèi)本質(zhì)上是

    2024年02月13日
    瀏覽(23)
  • JavaScript之ES6高級(jí)語(yǔ)法(一)

    JavaScript之ES6高級(jí)語(yǔ)法(一)

    本文是我在學(xué)習(xí)過(guò)程中記錄學(xué)習(xí)的點(diǎn)點(diǎn)滴滴,目的是為了學(xué)完之后鞏固一下順便也和大家分享一下,日后忘記了也可以方便快速的復(fù)習(xí)。 今天學(xué)習(xí)的主要是關(guān)于ES6新語(yǔ)法知識(shí)的理解和應(yīng)用 棧負(fù)責(zé)存放簡(jiǎn)單數(shù)據(jù)類(lèi)型,堆負(fù)責(zé)存放復(fù)雜數(shù)據(jù)類(lèi)型,但是復(fù)雜數(shù)據(jù)類(lèi)型會(huì)把內(nèi)容存在

    2024年02月09日
    瀏覽(24)
  • JavaScript:ES6中類(lèi)與繼承

    在JavaScript編程中,ES6引入了一種更現(xiàn)代、更清晰的方式來(lái)定義對(duì)象和實(shí)現(xiàn)繼承,那就是通過(guò)類(lèi)和繼承機(jī)制。本文將以通俗易懂的方式解釋ES6中類(lèi)與繼承的概念,幫助你更好地理解和應(yīng)用這些特性。 1. 類(lèi)的創(chuàng)建與使用 類(lèi)是一種模板,用于創(chuàng)建對(duì)象。在ES6中,我們可以使用 cl

    2024年02月13日
    瀏覽(25)
  • 15 JavaScript ES6中的箭頭函數(shù)

    15 JavaScript ES6中的箭頭函數(shù) 什么是箭頭函數(shù) ES6中允許使用=來(lái)定義函數(shù)。箭頭函數(shù)相當(dāng)于匿名函數(shù),并簡(jiǎn)化了函數(shù)定義。 基本語(yǔ)法 箭頭函數(shù)在語(yǔ)法上比普通函數(shù)簡(jiǎn)潔多。箭頭函數(shù)就是采用箭頭=來(lái)定義函數(shù),省去function。 函數(shù)的參數(shù)放在=前面的括號(hào)中,函數(shù)體跟在=后的

    2024年02月12日
    瀏覽(20)
  • JavaScript學(xué)習(xí)筆記01(包含ES6語(yǔ)法)

    Js 最初被創(chuàng)建的目的是“使網(wǎng)頁(yè)更生動(dòng)”。 Js 寫(xiě)出來(lái)的程序被稱(chēng)為 腳本 ,Js 是一門(mén)腳本語(yǔ)言。 被直接寫(xiě)在網(wǎng)頁(yè)的 HTML 中,在頁(yè)面加載的時(shí)候自動(dòng)執(zhí)行 腳本被以純文本的形式提供和執(zhí)行,不需要特殊的準(zhǔn)備或編譯即可運(yùn)行(JIN compiler) Js 不僅可以在瀏覽器中執(zhí)行,也可以在

    2024年02月16日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包