亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javascript數組的一些常用方法詳細匯總

 更新時間:2024年09月23日 08:59:03   作者:前端李易安  
在JavaScript開發(fā)中,數組的操作至關重要,本文詳細介紹了數組的常用方法,包括添加、刪除、查找、迭代、遍歷、排序和變換等功能,掌握這些方法,可以有效地處理和操作數組數據,提高開發(fā)效率和代碼的可維護性,需要的朋友可以參考下

前言

在 JavaScript 中,數組是一個非常常用的數據結構,JavaScript 提供了許多方法來操作和處理數組。以下是 JavaScript 中數組的常用方法,分為不同類型進行介紹:

1. 添加/刪除元素

  • push():向數組末尾添加一個或多個元素,返回數組的新長度。

    let arr = [1, 2, 3];
    arr.push(4); // arr = [1, 2, 3, 4]
    
  • pop():移除并返回數組最后一個元素。

    let arr = [1, 2, 3];
    let last = arr.pop(); // arr = [1, 2], last = 3
    
  • unshift():向數組開頭添加一個或多個元素,返回數組的新長度。

    let arr = [2, 3];
    arr.unshift(1); // arr = [1, 2, 3]
    
  • shift():移除并返回數組第一個元素。

    let arr = [1, 2, 3];
    let first = arr.shift(); // arr = [2, 3], first = 1
    
  • splice(start, deleteCount, item1, item2, ...):從數組中刪除、添加或替換元素。返回被刪除的元素數組。

    let arr = [1, 2, 3, 4, 5];
    arr.splice(1, 2); // 刪除從索引 1 開始的 2 個元素,arr = [1, 4, 5]
    arr.splice(2, 0, 6, 7); // 在索引 2 處插入 6 和 7,arr = [1, 4, 6, 7, 5]
    
  • slice(start, end):返回從 start 到 end(不包括 end)的淺拷貝新數組,不修改原數組。

    let arr = [1, 2, 3, 4, 5];
    let newArr = arr.slice(1, 3); // newArr = [2, 3]
    

2. 查找元素

  • indexOf(item):返回元素在數組中的第一個索引,找不到則返回 -1

    let arr = [1, 2, 3, 4];
    arr.indexOf(3); // 2
    
  • lastIndexOf(item):返回元素在數組中的最后一個索引,找不到則返回 -1。

    let arr = [1, 2, 3, 2];
    arr.lastIndexOf(2); // 3
    
  • includes(item):判斷數組是否包含某個元素,返回布爾值。

    let arr = [1, 2, 3];
    arr.includes(2); // true
    
  • find(callback):返回滿足條件的第一個元素,找不到則返回 undefined

    let arr = [1, 2, 3, 4];
    let found = arr.find(num => num > 2); // 3
    
  • findIndex(callback):返回滿足條件的第一個元素的索引,找不到則返回 -1。

    let arr = [1, 2, 3, 4];
    let foundIndex = arr.findIndex(num => num > 2); // 2
    

3. 迭代和遍歷

  • forEach(callback):對數組中的每個元素執(zhí)行一次提供的函數(不會返回新數組)。

    let arr = [1, 2, 3];
    arr.forEach(num => console.log(num)); // 輸出:1 2 3
    
  • map(callback):對數組中的每個元素執(zhí)行提供的函數,返回新的數組。

    let arr = [1, 2, 3];
    let newArr = arr.map(num => num * 2); // newArr = [2, 4, 6]
    
  • filter(callback):返回滿足條件的元素組成的新數組。

    let arr = [1, 2, 3, 4];
    let filteredArr = arr.filter(num => num > 2); // filteredArr = [3, 4]
    
  • some(callback):如果數組中至少有一個元素滿足條件,則返回 true,否則返回 false。

    let arr = [1, 2, 3];
    arr.some(num => num > 2); // true
    
  • every(callback):如果數組中每個元素都滿足條件,則返回 true,否則返回 false。

    let arr = [1, 2, 3];
    arr.every(num => num > 0); // true
    
  • reduce(callback, initialValue):將數組元素組合為一個值,callback 接收四個參數:累計值、當前值、當前索引和原數組。initialValue 是可選的初始累計值。

    let arr = [1, 2, 3, 4];
    let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0); // sum = 10
    
  • reduceRight(callback, initialValue):從數組的末尾開始執(zhí)行 reduce 操作。

    let arr = [1, 2, 3, 4];
    let sum = arr.reduceRight((accumulator, currentValue) => accumulator + currentValue, 0); // sum = 10
    

4. 數組排序和變換

  • sort(compareFunction):對數組進行排序,會修改原數組。compareFunction 可選,用于自定義排序規(guī)則。

    字符串數組排序

    let fruits = ['banana', 'apple', 'mango'];
    fruits.sort();
    console.log(fruits); // 輸出 ['apple', 'banana', 'mango']
    

    數字數組排序對于數字數組,默認排序可能會給出錯誤的結果,因為默認是將所有值轉換成字符串再排序

    let numbers = [8, 2, 3, 5, 1, 10];
    numbers.sort(); // 默認轉換為字符串排序,結果可能不是期望的 [1, 2, 3, 5, 8, 10]
    console.log(numbers); // 輸出[ 1, 10, 2, 3, 5, 8 ]
    

    為了正確地對數字進行排序,應該提供一個比較函數

    let numbers = [8, 2, 3, 5, 1, 10];
    numbers.sort((a, b) => a - b); 
    console.log(numbers); // 輸出[1, 2, 3, 5, 8, 10]
    

    如果想要倒序

    let numbers = [8, 2, 3, 5, 1, 10];
    numbers.sort((a, b) => b - a); 
    console.log(numbers); // 輸出[10, 8, 5, 3, 2, 1]
    

    對象數組排序如果你有一個對象數組,并且想要根據某個屬性來排序這些對象,可以這樣做:

    let people = [
      { name: 'John', age: 23 },
      { name: 'Jane', age: 29 },
      { name: 'Jack', age: 27 }
    ];
    
    // 按年齡排序
    people.sort((a, b) => a.age - b.age);
    console.log(people);
    // 輸出:
    // [
    //   { name: 'John', age: 23 },
    //   { name: 'Jack', age: 27 },
    //   { name: 'Jane', age: 29 }
    // ]
    
  • reverse():反轉數組順序,會修改原數組。

    let arr = [1, 2, 3];
    arr.reverse(); // arr = [3, 2, 1]
    
  • join(separator):將數組元素連接成字符串,separator 是可選的分隔符。

    let arr = [1, 2, 3];
    let str = arr.join('-'); // str = "1-2-3"
    
  • concat():合并兩個或多個數組,返回新數組,不修改原數組。

    let arr1 = [1, 2];
    let arr2 = [3, 4];
    let newArr = arr1.concat(arr2); // newArr = [1, 2, 3, 4]
    
  • flat(depth):將多維數組“拉平”到指定的深度,默認深度為 1。

    let arr = [1, [2, [3, [4]]]];
    let flatArr = arr.flat(2); // flatArr = [1, 2, 3, [4]]
    
  • flatMap(callback):對每個元素調用映射函數,然后將結果“拉平”一層。

    let arr = [1, 2, 3];
    let flatMapped = arr.flatMap(num => [num, num * 2]); // flatMapped = [1, 2, 2, 4, 3, 6]
    

5. 其他常用方法

  • Array.isArray():檢查一個值是否為數組。

    Array.isArray([1, 2, 3]); // true
    
  • fill(value, start, end):用指定值填充數組,start 和 end 是可選的起始和結束位置(不包括結束位置)。

    let arr = [1, 2, 3, 4];
    arr.fill(0, 1, 3); 
    console.log(arr) // 會改變原數組輸出:[1, 0, 0, 4]
    
  • from():從類數組或可迭代對象創(chuàng)建一個新數組。

    let arr = Array.from('hello'); 
    console.log(arr) // 輸出:['h', 'e', 'l', 'l', 'o']
    
  • of():根據給定的參數創(chuàng)建一個新數組。

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

總結 

到此這篇關于javascript數組的一些常用方法的文章就介紹到這了,更多相關js數組常用方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談javascript中this在事件中的應用

    淺談javascript中this在事件中的應用

    這篇文章主要介紹了淺談javascript中this在事件中的應用實例,非常有助于我們對this關鍵字的理解,這里推薦給大家。
    2015-02-02
  • 詳解如何構建Promise隊列實現異步函數順序執(zhí)行

    詳解如何構建Promise隊列實現異步函數順序執(zhí)行

    這篇文章主要介紹了詳解如何構建Promise隊列實現異步函數順序執(zhí)行,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 時間處理工具?dayjs使用示例詳解

    時間處理工具?dayjs使用示例詳解

    這篇文章主要為大家介紹了時間處理工具?dayjs使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 基于JavaScript實現全屏透明遮罩div層鎖屏效果

    基于JavaScript實現全屏透明遮罩div層鎖屏效果

    這篇文章主要介紹了基于JavaScript實現全屏透明遮罩div層鎖屏效果的相關資料,需要的朋友可以參考下
    2016-01-01
  • js中apply()和call()的區(qū)別與用法實例分析

    js中apply()和call()的區(qū)別與用法實例分析

    這篇文章主要介紹了js中apply()和call()的區(qū)別與用法,結合實例形式分析了apply()和call()的功能、區(qū)別、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-08-08
  • JS隨拖拽速度設置傾斜角度的實現代碼

    JS隨拖拽速度設置傾斜角度的實現代碼

    這篇文章主要給大家介紹了JS如何隨拖拽速度設置傾斜角度,文中有詳細的代碼講解,對大家的學習或工作有一定的幫助,感興趣的小伙伴可以自己動手嘗試一下
    2023-09-09
  • js實現浮動在網頁右側的簡潔QQ在線客服代碼

    js實現浮動在網頁右側的簡潔QQ在線客服代碼

    這篇文章主要介紹了js實現浮動在網頁右側的簡潔QQ在線客服代碼,通過簡單的自定義函數控制客服圖片的顯示與隱藏效果,非常具有實用價值,需要的朋友可以參考下
    2015-09-09
  • JavaScript實現HTML導航欄下拉菜單

    JavaScript實現HTML導航欄下拉菜單

    這篇文章主要為大家詳細介紹了JavaScript實現HTML導航欄下拉菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 67 個節(jié)約開發(fā)時間的前端開發(fā)者的工具、庫和資源

    67 個節(jié)約開發(fā)時間的前端開發(fā)者的工具、庫和資源

    在本文中,我不會去談 React、Angular、Vue 等等這些大的前端框架,也不會談 Atom、VS code、Sublime 等等這些已經很出名的代碼編輯器,我只是想簡單的分享一套我認為有助于提升開發(fā)者工作流的工具集
    2017-09-09
  • electron中preload.js文件的用法小結

    electron中preload.js文件的用法小結

    preload.js文件在Electron應用中起著橋梁的作用,使得在保持安全的同時,渲染進程可以訪問主進程的功能,保持渲染進程與主進程隔離的同時,又能使渲染進程具有訪問特定Electron API的能力的方法,本文給大家分享electron中preload.js文件的用法,感興趣的朋友一起看看吧
    2024-04-04

最新評論