js中map,forEach,filter,reduce等方法是ECMAScript5 Array新增方法

來源:互聯網
上載者:User

標籤:blog   最小值   指定   第一個   函數   targe   images   操作   tle   

數組在各個程式設計語言中的重要性不言而喻,但是在之前的JavaScript中數組(JavaScript 數組詳解)雖然功能已經很強大,但操作方法並不完善,在ECMAScript5中做了適當的補充。

Array.isArray(element)

這是Array對象的一個靜態函數,用來判斷一個對象是不是數組

var a = new Array(123);        var b = new Date();        console.log(Array.isArray(a)); //true        console.log(Array.isArray(b)); //false
.indexOf(element) / .lastIndexOf(element)

顧名思義,這兩個方法用於尋找數組內指定元素位置,尋找到第一個後返回其索引,沒有尋找到返回-1,indexOf從頭至尾搜尋,lastIndexOf反向搜尋。

var a=new Array(1,2,3,3,2,1);           console.log(a.indexOf(2)); //1        console.log(a.lastIndexOf(2)); //4
.forEach(element,index,array)

遍曆數組,參數為一個回呼函數,回呼函數有三個參數:當前元素,元素索引,整個數組

var a=new Array(1,2,3,4,5,6);        a.forEach(function(e,i,array){            array[i]=e+1;            });           console.log(a); //[2, 3, 4, 5, 6, 7]
.every(function(element,index,array)) / .some(function(element,index,array))

這兩個函數類似於離散數學中的邏輯判定,回呼函數返回一個布爾值,every是“所有”函數的每個回呼函數都返回true的時候才會返回true,當遇到false的時候終止執行,返回false;some函數是“存在”有一個回呼函數返回true的時候終止執行並返回true,否則返回false。在空數組上調用every返回true,some返回false。

var a=new Array(1,2,3,4,5,6);        /*0 : 1         1 : 2        2 : 3        3 : 4         4 : 5         false */        console.log(a.every(function(e,i,arr){            console.log(i+‘ : ‘+e);            return e<5;            }));
var a=new Array(1,2,3,4,5,6);        /*0 : 1         1 : 2        2 : 3        3 : 4         4 : 5         true */        console.log(a.some(function(e,i,arr){            console.log(i+‘ : ‘+e);            return e>4;            }));
.map(function(element))

與forEach類似,遍曆數組,回呼函數傳回值組成一個新數組返回,新數組索引結構和原數組一致,原數組不變

var a=new Array(1,2,3,4,5,6);        console.log(a.map(function(e){            return e*e;            })); // [1, 4, 9, 16, 25, 36]         console.log(a); //[1, 2, 3, 4, 5, 6]
.filter(function(element))

返回數組的一個子集,回呼函數用於邏輯判斷是否返回,返回true則把當前元素加入到返回數組中,false則不加,新數組只包含返回true的值,索引缺失的不包括,原數組保持不變

var a=new Array(1,2,3,4,5,6);        console.log(a.filter(function(e){            return e%2==0;            })); // [2, 4, 6]         console.log(a); //[1, 2, 3, 4, 5, 6]
.reduce(function(v1,v2),value) / .reduceRight(function(v1,v2),value)

遍曆數組,調用回呼函數,將數組元素組合成一個值,reduce從索引最小值開始,reduceRight反向,方法有兩個參數

1.回呼函數:把兩個值合為一個,返回結果

2.value,一個初始值,可選

var a=new Array(1,2,3,4,5,6);        console.log(a.reduce(function(v1,v2){            return v1+v2;            })); // 21            console.log(a.reduceRight(function(v1,v2){                return v1-v2;                },100)); // 79

 

 

js中map,forEach,filter,reduce等方法是ECMAScript5 Array新增方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.