1. 程式人生 > >es5中的陣列方法

es5中的陣列方法

es5定義了新的陣列方法遍歷,對映,過濾,檢測,簡化和搜尋陣列。這些方法對運算元組 提供了極大的便利。es5陣列 大對數方法,首先大多數方法的第一個引數 是一個函式,並且對陣列的每個元素(或一些元素))呼叫一次該函式。大多數情況下,呼叫提供的函式提供三個引數:陣列元素,元素索引和元素本身。通常情況下,只需要第一個引數,可忽略後兩個引數。大多數 es5陣列方法的第一個引數是一個函式,第二個引數是可選的,如果有第二個引數,則呼叫的函式被看成是第二個引數的方法。也就是說,在呼叫函式式傳遞進去的第二個引數作為他的this官架子得值來使用。es5中的陣列的方法都不會修改他們呼叫的原始陣列。當然傳遞給這些方法的函式是可以修改這些陣列的。

下面介紹陣列方法:
1.forEach()方法從頭遍歷陣列,為每個元素呼叫指定的函式。傳遞的引數作為forEach()傳遞的函式作為forEach.的第一個引數。然後forEach()使用三個引數呼叫該函式: 陣列元素,元素的索引,元素本身。如果只關心陣列元素的值,可以編寫只有一個引數的函式。
var data = [1,2,3,4];
var sum = 0;
data.forEach(function(value){ 

sum += value;

});

data.forEach(function(value,i,a){

a[i] = value + 1; //數組裡的每個元素都加上1;

});

 2.map()方法將呼叫的每個元素傳遞給指定的函式,並返回一個數組,它包含該函式的返回值。
var a = [1,2,3];
var b = a.map(function(x){

return x*x; //b得值是[1,4,9]

});

3.filter()方法返回的陣列元素是呼叫的陣列的一個子集,傳遞的函式是用來邏輯判定的,該函式返回true或false。通俗點說就是過濾器,過濾滿足條件的陣列的元素。

var a = [1,2,3,4,5];
var smallValues = a.filter(function(x){

return x < 3; //[1,2]

});

var every = a.filter(function(x,i){

return i%2 == 0; //[1,3,5]

});

4,every()和some()方法是陣列的邏輯判定,他們對陣列元素指定的函式進行判定,返回true或false.
every()方法針對陣列中的所有元素呼叫判定函式都返回true,它才返回true.some()方法,當且陣列至少有一個元素呼叫判定函式返回true,它就返回true。
var a = [1,2,3,4,5,6];
a.every(function(x){return x<10 ;});//true
a.every(function(x){return x%2 === 0});//false


a.some(function(x){return x<2 ;});//true
a.some(function(x){return x%2 === 0});//true

注意:一旦every()和aome()確認返回什麼值時它們就會停止遍歷陣列元素。


相關推薦

JS陣列方法詳解

JS中陣列的方法有很多,但是自己一直沒有抽時間進行整理分類,故單獨寫一篇博文,對目前我所掌握的JS中陣列相關的方法進行整理,夯實一下自己的基礎。 我將陣列相關的方法分為兩類 1.方法會改變原陣列 相應的方法有:shift、unshift、pop、push、rev

day 08 排序 ES5新增陣列方法 內建物件

  1.選擇排序 var arr = [43,543,23,1,6];     function box(arr){         var temp =

ES6。類與繼承的方法,以及與ES5方法的對比

// 在ES5中,通常使用建構函式方法去實現類與繼承   1 // 建立父類 2 function Father(name, age){ 3 this.name = name; 4 this.age = age;

JS陣列方法的底層實現

原始碼地址: https://github.com/v8/v8/blob/ad82a40509c5b5b4680d4299c8f08d6c6d31af3c/src/js/array.js 陣列變異方法(即改變原陣列):shift、unshift、splice、push、pop、sor

day 08 排序 ES5新增陣列方法 內建物件

1.選擇排序 var arr = [43,543,23,1,6];     function box(arr){         var temp = 0;         for (var i = 0; i < arr.length-1; i++) {

ECMAScript5陣列方法的效能問題

經常在Codewars打怪升級,練習JS的時候很喜歡使用ES5中的一系列陣列方法。 比如filter,map,reduce這樣的函式式方法。 可以達到精簡程式碼的目的。 然而,在一次提交程式碼的過程中,我突然萌生一種想法。 看不使用ES5的方法,純for迴圈,效能會不會提升

ES5新增陣列方法(3):some

檢查陣列元素中是否有元素符合指定。 // 陣列中的元素部分滿足指定條件返回true let arr = [1, 3, 5, 7, 9]; console.log(arr.some((value, index, array) => value > 10));// false

ES5新增陣列方法(4):every

檢查陣列元素的每個元素是否符合條件。 // 陣列中的元素全部滿足指定條件返回true let arr = [1, 3, 5, 7, 9]; console.log(arr.every((value, index, array) => value > 10));// false

js陣列方法push()、shift()與pop()、unshift()的區別

1、push()是用來在陣列末端新增項,shift()在移除陣列的第一個項。 2、pop()在陣列末端移除項,unshift()在陣列前端新增項。 3、push(),unshift()在推入多個

Javascript陣列方法reduce的妙用之處

Javascript陣列方法中,相比map、filter、forEach等常用的迭代方法,reduce常常被我們所忽略,今天一起來探究一下reduce在我們實戰開發當中,能有哪些妙用之處,下面從reduce語法開始介紹。 語法 array.reduce(function(accumulator, arra

js陣列方法大全

js陣列方法大全   一:前言   我們在學到js中陣列的時候,我們會接觸到js中陣列的一些方法,這些方法對我們來說,可以很遍歷的達到我們想要的結果,但是因為方法比較多,有些方法也不常用,可能會過一段時間就會忘記,那麼在這裡我整理了21個數組的方法,供大家查閱。   方法名對應版本功能原陣列是否

ES6新增陣列方法ES5之間的區別

1.擴充套件運算子(...)替代ES5 apply()方法:數組合並var arr1=[1 , 2] , arr2=[3,4] ;[...arr1,...arr2];//[1,2,3,4];arr1.push(...arr2);函式返回多個值var obj = fn(num)

es5陣列方法

es5定義了新的陣列方法遍歷,對映,過濾,檢測,簡化和搜尋陣列。這些方法對運算元組 提供了極大的便利。es5陣列 大對數方法,首先大多數方法的第一個引數 是一個函式,並且對陣列的每個元素(或一些元素))呼叫一次該函式。大多數情況下,呼叫提供的函式提供三個引數:陣列元素,元素

JavaScript陣列Array.prototype的常用的方法彙總

Array建構函式的API,我們可以通過控制檯列印Array.prototype可以知道有以下這些方法。這是Array的原型物件的所有方法,對陣列而言是可以繼承所有的這些方法的: 接下來,我們就以12個比較常見常用的API開始說起: 1. join() 將陣列轉化為字串,並且以某個

ES6陣列方法ES5實現、節流防抖

join Array.prototype.join = function(arg) { let result = this[0] || '' const length = this.length for (let i = 0; i< len

ES5 陣列方法

ES5 陣列方法 ES5 定義了九個新的陣列方法來遍歷、對映、過濾、簡化和搜尋陣列。 1.forEach() forEach()方法從頭至尾遍歷陣列,為每個元素呼叫指定的函式。三個引數:陣列元素、元素的索引和陣列本身。 var data = [1, 2, 3, 4, 5]

javaScript陣列的幾種常用方法

1.splice(2,3,4)刪除陣列中任意項(三個引數). 2.splice(1,3)刪除從第一項開始的往後三項(兩個引數).(splice可以結合pop(),unshift(),push(),shift()來理解) 3.push()在陣列的末尾增加一項. 4.unshift()在陣列

原聲JSindexOf()方法陣列的應用一

定義和用法 indexOf() 方法可返回某個指定的字串值在字串中首次出現的位置。 提示和註釋 註釋:indexOf() 方法對大小寫敏感! 註釋:如果要檢索的字串值沒有出現,則該方法返回 -1。 註釋:字元位置是從 0 開

js陣列遍歷的幾種方法及其區別

第一種最常用的:for迴圈  for(j = 0; j < arr.length; j++) { }  優化版for迴圈   for(j = 0,len=arr.length; j < len; j++) {

ES5 陣列方法之-----map

ES5 陣列方法map 概述 map() 方法返回一個由原陣列中的每個元素呼叫一個指定方法後的返回值組成的新陣列。 語法 array.map(callback[, thisArg]) 引數 callback 原陣列中的元素經過該方法後返回一個新的元素。