国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中Array方法你該知道的正確打開方法

2024-05-06 15:30:18
字體:
來源:轉載
供稿:網友

前言

在過去的幾個月,我發現我的拉取請求中存在四個完全相同的 JavaScript 錯誤。于是我寫了這篇文章,總結了如何在 JavaScript 中正確使用地使用 Array 的方法!

Array對象為JavaScript內置對象,具有以下屬性:

屬性 描述
constructor 返回對創建此對象的數組函數的引用。
length 返回數組中元素的個數
prototype 向對象添加屬性和方法。

用 Array.includes 代替 Array.indexOf

“如果你要在數組中查找元素,請使用 Array.indexOf”。我記得在學習 JavaScript 的時候,在教材中讀到這樣的一句話。毫無疑問,這句話是真的!

MDN 文檔寫道,Array.indexOf 將“返回第一次出現給定元素的索引”。因此,如果我們稍后要在代碼中使用這個返回的索引,那么使用 Array.indexOf 找到索引就對了。

但是,如果我們只想知道數組是否包含某個值,該怎么辦?這似乎是一個是與否的問題,或者說是一個布爾值問題。對于這種情況,我建議使用返回布爾值的 Array.includes。

'use strict';const characters = [ 'ironman', 'black_widow', 'hulk', 'captain_america', 'hulk', 'thor',];console.log(characters.indexOf('hulk'));// 2console.log(characters.indexOf('batman'));// -1console.log(characters.includes('hulk'));// trueconsole.log(characters.includes('batman'));// false

使用 Array.find 而不是 Array.filter

Array.filter 是一個非常有用的方法。它接受一個回調函數作為參數,基于一個包含所有元素的數組創建出一個新的數組。正如它的名字一樣,我們使用這個方法來過濾元素,獲得更短的數組。

但是,如果回調函數只能返回一個元素,那么我就不推薦使用這個方法,例如使用回調函數來過濾唯一 ID。在這種情況下,Array.filter 將返回一個只包含一個元素的新數組。我們的意圖可能是通過查找特定的 ID 找到數組中包含的唯一值。

我們來看看這個方法的性能。要返回與回調函數匹配的所有元素,Array.filter 必須遍歷整個數組。此外,我們假設有數百個元素可以滿足回調參數,那么過濾后的數組會非常大。

為了避免這種情況,我建議使用 Array.find。它需要一個像 Array.filter 一樣的回調函數作為參數,并返回滿足回調函數的第一個元素的值。此外,只要找到第一個滿足回調函數的元素,Array.find 就會停止,無需遍歷整個數組。通過 Array.find 來查找元素,我們可以更好地理解我們的意圖。

'use strict';const characters = [ { id: 1, name: 'ironman' }, { id: 2, name: 'black_widow' }, { id: 3, name: 'captain_america' }, { id: 4, name: 'captain_america' },];function getCharacter(name) { return character => character.name === name;}console.log(characters.filter(getCharacter('captain_america')));// [// { id: 3, name: 'captain_america' },// { id: 4, name: 'captain_america' },// ]console.log(characters.find(getCharacter('captain_america')));// { id: 3, name: 'captain_america' }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 东乌珠穆沁旗| 普兰店市| 洛南县| 乾安县| 紫金县| 汤阴县| 唐海县| 华容县| 绥棱县| 永平县| 嘉义市| 稷山县| 夏邑县| 南阳市| 湖南省| 通城县| 金门县| 枣强县| 天峻县| 昭觉县| 德钦县| 额济纳旗| 平陆县| 曲靖市| 常州市| 韶山市| 永仁县| 西峡县| 海原县| 临西县| 兰溪市| 金门县| 台东县| 津南区| 环江| 虹口区| 泰来县| 红安县| 昌江| 两当县| 济源市|