日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript数组常见的方法

發布時間:2025/4/16 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript数组常见的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分為兩種:原型(實例)方法和靜態函數

第一類:原型方法:

棧方法(后進先出)
push
參數:任意個
作用:將任意數量的參數逐個添加到數組尾部
返回值: 新數組的長度
影響:破壞了原數組

pop
參數:無
作用:刪除數組最后一項
返回值:刪除的項
影響:破壞了原數組

隊列方法(先進先出)
unshift
參數:任意個
作用:將任意個參數逐個添加到數組前端
返回值:新數組的長度
影響:破壞了原數組

shift
參數:無
作用:刪除數組第一項
返回值:刪除的項
影響:破壞了原數組

重排序方法
reverse
參數:無
作用:反轉數組
返回值:排序后的數組
影響:破壞了原數組

sort
1)不推薦使用默認排序方法
2)接受一個比較函數作為參數,
3)比較函數接受兩個參數,如果第一個參數位于第二個參數之前則返回一個負數,如兩個參數相等則返回0,若第一個參數位于第二個參數之后則返回一個正數
4)比較數值數組的比較函數

function ascendingCompare(num1, num2) {return num1 - num2; }function descendingCompare(num1, num2) {return num2 - num1; }var arr = [1 , 2, 3]; console.log(arr.sort(ascendingCompare) // [1,2,3] console.log(arr.sort(descendingCompare) // [3,2,1]

5)根據對象數組里的對象的某個指定屬性的比較函數(閉包)

function compare(propertyName) {return function (object1, object2) {return object1[propertyName] - object2[propertyName]} }var arr [{name: '子虛', age: 12}, {name: '烏有', age: 13}] console.log(arr.sort(compare(age)) // {name: '子虛', age: 12}, {name: '烏有', age: 13}]

6)返回值:排序后的數組
7)影響:破壞了原數組

操作方法
concat
1)先創建當前數組的一個副本,然后將接收到的參數添加到這個副本的尾部,最后返回這個副本
2)如果參數是一個或多個數組,這該方法會將這些數組中的每一項都添加到結果數組中
3)如果參數不是數組,這些值會被簡單的添加到結果數組的末尾
4)如果不傳參數,它只是復制數組并返回副本(可用于復制數組)
5)不會破壞原數組

join
1) 將數組中的所有元素拼接成一個字符串并返回
2)可以在join傳遞一個字符串作為參數,該參數表示連接的方式
3)不會破壞原數組

slice
1)從當前數組中取出一個或多個指定的連續的元素創建數組并返回
2)當只有一個參數時,該方法從該參數位置開始到當前數組的所有項
3)當有兩個參數時,該方法返回起始和結束位置之間的項,但不包括結束位置的項
4)當參數中有負數的時候,用數組長度加上該數來確定相應的位置
5)不會破壞原數組

splice
1)刪除數組中的指定的連續的元素,也可向數組的中部插入項
2)刪除:提供兩個參數:刪除第一項的起始位置,刪除的個數
3)插入:提供三個參數:起始位置,0(刪除的項數),要插入的項
4)編輯:提供三個參數:起始位置,刪除的項數,要添加的項(刪除的項數不一定要等于添加的項數)
5)返回從原始數組刪除的項組成的數組
6)破壞了原數組

以下為es6新增

位置方法
indexOflastIndexOf
1)這兩個方法都接受兩個參數:要查找的項和(可選的)起始位置,
2)indexOf從數組開頭向后查找,lastIndexOf從數組末尾向前查找
3)返回查找的項在數組中的位置,或者在沒找到的情況下返回-1
4)使用全等操作符 (NaN不等于NaN)

遍歷
forEach
1)對數組每一項運行給定函數作為參數
2)該函數分別接受三個參數:數組元素,數組索引(可選),數組本身(可選)
3)無返回值
4)缺點:無法像for循環那樣用break語句提前終止遍歷

映射
map
1)對數組每一項運行給定函數,返回每次函數調用的結果組成的數組
2)該函數分別接受三個參數:數組元素,數組索引(可選),數組本身(可選)

過濾
filter
1)對數組每一項運行給定函數,返回該函數會返回true的項組成的數組
2)該函數分別接受三個參數:數組元素,數組索引(可選),數組本身(可選)

檢測
everysome
1)它們對數組元素應用指定的函數進行判定,返回true或false
2)every就像數學中的“針對所有”的量詞?,當前僅當數組中的每一項調用指定函數都返回true,它才返回true
3)some就像數學中的“存在”的量詞ョ,只要數組中有一項調用指定函數返回true,它就返回true
4)一旦every和some確認返回值就會停止遍歷
5)根據數學上的慣例,空數組調用every返回true,some返回false

歸納
reducereduceRight
1)使用指定的函數對數組元素進行組合,生成單個值,這在函數式編程中是常見操作,也可成為“注入”和“折疊”
2)reduce第一個參數是執行簡化操作的化簡函數,化簡函數的任務是用某種方法把兩個值組合或化簡為一個值,并返回化簡后的值,第二個參數(可選)是作為化簡函數的第一個參數的初始值,如果不傳就取數組的第一項
3)化簡函數的第一個參數是到目前為止的化簡操作累計的結果,第2-4個參數分別是數組元素、數組索引和數組本身
4)reduceRight類似于reduce,不同的是它是從右往左處理

const a = [1,2,3,4,5] const sum = a.reduce(function(x,y){return x+y}, 0) // 數組求和 const max = a.reduce(function(x,y){return (x>y)?x:y}) // 數組求最大值

includes
1)參數:要檢測的元素
2)作用:檢測某個數組是否包含給定的元素
3)返回值:布爾值
4)使用不一樣的判斷算法

[NaN].includes(NaN) // true

fill
1)參數:參數1用來填充數組的元素,參數2填充數組的起始位置(可選),參數3填充數組的結束位置(可選,不包括結束位置)

['a', 'b', 'c'].fill(7, 1) // ['a', 7, 7]

2)返回值:新數組
3)破壞了原數組
4)如果填充的類型為對象,那么被賦值的是同一個內存地址的對象,而不是深拷貝對象

let arr = new Array(3).fill({name: "Mike"}); // [{name: "Mike"}, {name: "Mike"}, {name: "Mike"}] arr[0].name = "Ben"; // [{name: "Ben"}, {name: "Ben"}, {name: "Ben"}]

findfindIndex
1)find方法,用于找出第一個符合條件的數組成員。它的參數是一個回調函數(參數依次為當前的值、當前的位置和原數組),所有數組成員依次執行該回調函數,直到找出第一個返回值為true的成員,然后返回該成員。如果沒有符合條件的成員,則返回undefined
2)findIndex方法的用法與find方法非常類似,返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1
3)這兩個方法都可以接受第二個參數,用來綁定回調函數的this對象
4)這兩個方法都可以發現NaN,彌補了數組的indexOf方法的不足

[NaN].indexOf(NaN) // -1 [NaN].findIndex(y => Object.is(NaN, y)) // 0

第二類:靜態函數:

Array.of()
1)誕生原因:Array()構造器有一個總所周知的陷阱,就是只傳一個參數,且這個參數是數字的話,那么不會構造出一個值為這個數字的單元素的數組,而是一個空數組,其length屬性為這個數字;
2)Array.of總是返回參數值組成的數組。如果沒有參數,就返回一個空數組。

Array.from()
1)用于將兩類對象轉為真正的數組:類似數組的對象(arguments, nodelist)和可遍歷(iterable)的對象(Set ,Map, 字符串)

var arrLike = {length: 4,2: "foo", } Array.from(arrLike) // [undefined, undefined, "foo", undefined]

2)第一個參數是要轉換的數據,第二個是可選參數,是一個映射回調函數,作用類似于數組的map方法,用來對每個元素進行處理,將處理后的值放入返回的數組,還可以傳第三個可選參數,用于指定第二個參數回調函數的this

var arrLike = {length: 4,2: "foo", } Array.from(arrLike, item => item || 0) // [0, 0 , "foo", 0]

參考資料:《黃皮書》《紅皮書第三版》《犀牛書》《阮大神es6》

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Javascript数组常见的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。