ES5中新增的Array方法說明

2021-09-05 12:15:52 字數 2088 閱讀 7626

陣列中的find、filter、foreach、map四個語法很相近,

array.find(findindex),返回符合條件的第乙個值

let arr = [1, 4, -5, 10]

console.log(arr.find((n) => n < 0)) // -5

[1, 5, 10, 15].find(function(value, index, arr) ) // 10

array.filter(過濾成新的陣列)

[1, 2, 3, 4, 5].filter(function (elem) )

// [4, 5]

filter方法還可以接受第二個引數,指定測試函式所在的上下文物件(即this物件)。

var obj = function () ;

var myfilter = function (item)

};var arr = [2, 8, 3, 4, 1, 3, 2, 9];

arr.filter(myfilter, new obj())

// [8, 4, 9]

array.map() 方法對陣列的所有成員依次呼叫乙個函式,根據函式結果返回乙個新陣列

var numbers = [1, 2, 3];

numbers.map(function (n) );

// [2, 3, 4]

numbers

// [1, 2, 3]

array.every():判斷陣列中每一項都是否滿足條件,只有所有項都滿足條件,才會返回true。

var arr = [1, 2, 3, 4, 5];

var arr2 = arr.every(function(x) );

console.log(arr2); //true

var arr3 = arr.every(function(x) );

console.log(arr3); // false

array.some():判斷陣列中是否存在滿足條件的項,只要有一項滿足條件,就會返回true。

var arr = [1, 2, 3, 4, 5];

var arr2 = arr.some(function(x) );

console.log(arr2); //true

var arr3 = arr.some(function(x) );

console.log(arr3); // false

reduce()和 reduceright()

這兩個方法都會實現迭代陣列的所有項,然後構建乙個最終返回的值。reduce()方法從陣列的第一項開始,逐個遍歷到最後。而 reduceright()則從陣列的最後一項開始,向前遍歷到第一項。

這兩個方法都接收兩個引數:乙個在每一項上呼叫的函式和(可選的)作為歸併基礎的初始值。

傳給 reduce()和 reduceright()的函式接收 4 個引數:前乙個值、當前值、項的索引和陣列物件。這個函式返回的任何值都會作為第乙個引數自動傳給下一項。第一次迭代發生在陣列的第二項上,因此第乙個引數是陣列的第一項,第二個引數就是陣列的第二項。

下面**用reduce()實現陣列求和,陣列一開始加了乙個初始值10。

var values = [1,2,3,4,5];

var sum = values.reduceright(function(prev, cur, index, array),10);

console.log(sum); //25

有了reduce,我們可以輕鬆實現二維陣列的扁平化:

var matrix = [

[1, 2],

[3, 4],

[5, 6]

];// 二維陣列扁平化

var flatten = matrix.reduce(function (previous, current) );

console.log(flatten); // [1, 2, 3, 4, 5, 6]

ES5中的新增方法

es5中給我們新增了一些方法,可以很方便的運算元組或者字串,這些方法主要包括 陣列方法 字串方法 物件方法 迭代 遍歷 方法 foreach map filter some every foreach array.foreach function currentvalue,index,arr cur...

ES5新增方法

語法 arr.foreach function value,index,array value 陣列當前項的值 index 陣列當前的索引 array 陣列物件本身 var arr 1,2,3 arr.foreach function value,index,array 輸出 每個陣列元素1 每個陣...

ES5新增方法

迭代 遍歷 方法 foreach0 map0 filter some0 every0 array.some funct ion currentvalue,index,arr some0 方法用於檢測陣列中的元素是否滿足指定條件.通俗點查詢陣列中是否有滿足條件的元素 注意它返回值是布林值,如果查詢到這...