ES5 陣列方法

2021-08-17 15:06:12 字數 2294 閱讀 1681

foreach()方法從頭至尾遍歷陣列,為每個元素呼叫指定的函式。三個引數:陣列元素、元素的索引和陣列本身。

var data = [1, 2, 3, 4, 5]

var sum = 0

data.foreach(function

(val))

sum // 15

data.foreach(function

(v, i, a))

data // [2, 3, 4, 5, 6]

map()方法將呼叫的陣列的每個元素傳遞給指定的函式,並返回乙個陣列,它包含該函式的返回值。

var a = [1, 2, 3]

var b = a.map(function

(x))

b // [1, 4, 9]

傳遞給map的函式應該有返回值。map返回的是新陣列,它不修改呼叫的陣列。

filter()方法返回的陣列元素是呼叫陣列的乙個子集。傳遞的函式是用來邏輯判定的:該函式返回true或false。如果返回值是true,那麼傳遞給判定函式的元素就是這個子集的成員,它將被加到乙個作為返回值的陣列中。

var a = [5,4,3,2,1]

var smallvalues = a.filter(function

(x))

everyother // [5, 3, 1]

它們是對陣列元素應用指定的函式進行判定,返回true或false

every()

「針對所有」的意思,當且僅當針對陣列中所有元素呼叫判定函式都返回true,它才返回true

var a = [1, 2, 3, 4, 5]

a.every(function

(x)) // true

a.every(function

(x)) // false

some()

「存在」的意思,當陣列中至少有乙個元素呼叫判定函式返回true,它就返回true;當且僅當數值中所有元素呼叫判定函式都返回false,它才返回false。

var a = [1, 2, 3, 4, 5]

a.some(function

(x)) // true

a.some(isnan) // false: a不包含非數值元素

注意:一旦every()和some()確認範圍什麼值它們就會停止遍歷陣列元素。

some()在判定函式第一次返回true後就返回true,但如果判定函式一直返回false,它將會遍歷整個陣列。

every()恰好相反:它在判定函式第一次返回false後就返回false,但是如果判定函式一直返回true,它將會遍歷整個陣列。

它們使用指定的函式將陣列元素進行組合,生成單個值。

var a = [1, 2, 3, 4, 5]

var sum = a.reduce(function

(x, y), 0) // 15 求和

var product = a.reduce(function

(x, y), 1) // 120 求積

var max = a.reduce(function

(x, y)) // 5 求最大值

reduce()需要兩個引數。第乙個是執行化簡操作的函式。化簡函式的任務就是用某種方法把兩個值組合或簡化為乙個值,並返回簡化後的值。第二個引數是可選引數,傳遞給函式的初始值。

上例中第三次呼叫reduce()沒有指定初始值。它將使用陣列的第乙個元素作為其初始值。

空陣列上,不帶初始值引數呼叫reduce()將導致型別錯誤異常。如果呼叫它的時候只有乙個值——陣列只有乙個元素並且沒有指定初始值,或者有乙個空陣列並且指定乙個初始值——reduce()只是簡單地返回那個值而不會呼叫化簡函式。

和reduceright()與reduce()一樣,不同的是它按照索引從高到低處理陣列。它們搜尋整個陣列中具有給定值的元素,返回找到的第乙個元素的索引或者沒有找到就返回-1。indexof()從頭至尾搜尋,而lastindexof()則反向搜尋。

a = [0, 1, 2, 1, 0]

a.indexof(1)// 1

a.lastindexof(1)// 3

a.indexof(3)// -1

它們不接受乙個函式作為其引數。第乙個引數是需要搜尋的值,第二個引數是可選的:它指定陣列中的乙個索引,從那裡開始搜尋。第二個引數,可以為負數,它代表相對陣列末尾的偏移量。

字串也有indexof()和lastindexof()

ES5陣列方法

push 從陣列最後一位新增 pop 從陣列最後一位刪除 shift 從陣列第一位刪除 unshift 從陣列第一位新增 reverse 陣列逆轉 splice 從第幾位開始,擷取長度,在切口處新增新的資料 sort 陣列排序 arr.sort function a,b 正序 return b a ...

es5 陣列方法

es5 陣列方法的擴充套件 陣列物件.foreach function item,index 陣列物件.map function item,index 返回乙個加工後的新陣列 陣列物件.filter function item,index 按指定要求過濾,返回結果為true的子陣列 示例 main ...

ES5陣列方法

1.array.isarray 用來判斷是否為陣列,可以彌補typeof運算子的不足 2.valueof 返回陣列的原始值 一般情況下其實就是陣列自身 3.tostring 返回陣列的字串形式 4.indexof 返回指定元素在陣列中第一次出現的位置,沒有返回 1 5.lastindexof 返回指...