摘要:接收四個參數上一次調用回調返回的值,或者是提供的初始值前一個值數組中當前被處理的數組項當前值當前數組項在數組中的索引值項的索引調用方法的數組說這么多還是看代碼就清楚了第一次執行回調函數,是,是。
數組方法ES5
------ES5-------
push() --從數組末尾添加參數,返回修改后數組的長度;(可傳多個參數)
棧方法(后進先出)
var animals = ["cat","dog","pig"]; var all = animals.push("bird"); //末尾推入一項 console.log(all); // 4
pop() --從數組末尾刪除參數,返回值為刪除元素(只刪除一個);
棧方法(后進先出)
var animals = ["cat","dog","pig","bird"]; var all = animals.pop(); //取得最后一項 console.log(all); // bird
unshift() --從數組起始添加參數,返回修改后數組的長度;(可傳多個參數)
隊列方法(先進先出)
var animals = ["cat","dog","pig"]; var all = animals.unshift("bird"); //起始推入一項 console.log(all); // 4
shift() --從數組起始刪除參數,返回值為刪除元素(只刪除一個)
隊列方法(先進先出)
var animals = ["cat","dog","pig","bird"]; var all = animals.unshift(); //取得起始一項 console.log(all); // cat
splice()--
刪除:刪除任意數量的項,指定兩個參數,要刪除的第一項的位置和要刪除得項數;
var animals = ["cat","dog","pig","bird"]; var all = animals.splice(0,2); //刪除前兩項 console.log(all); // ["cat"]
插入:向指定位置添加任意數量的項,需提供三個參數:起始位置、0(要刪除的項數)和要插入的項;
var animals = ["cat","dog","pig","bird"]; var all = animals.splice(2,0,"a","b","c"); //從第二項后插入 console.log(all); // [] console.log(animals); // ["cat", "dog", "a", "b", "c", "pig", "bird"]
替換:向指定位置添加任意數量的項,且同時刪除任意數量的項,需提供三個參數:起始位置、要刪除的項數和要插入的項;
var animals = ["cat","dog","pig","bird"]; var all = animals.splice(1,3,"a","b","c"); //從第一項后插入,刪除后三項 console.log(all); // ["dog", "pig", "bird"] 返回刪除得項 console.log(animals); // ["cat", "a", "b", "c"]
slice(start,end)--切去起始位置到結束位置的數組(不包含end),返回值為切出的數組;
var animals = ["cat","dog","pig","bird","tiger"]; var frag = animals.slice(1,2); var frag2 = animals.slice(1); console.log(frag); //["dog"] console.log(frag2); // ["dog", "pig", "bird","tiger"] //如果slice()方法的參數中有一個負數,則用數組長度加上該數來確定相應的位 //置。例如,在一個包含5 項的數組上調用slice(-2,-1)與調用slice(3,4)得到的 //結果相同。如果結束位置小于起始位置,則返回空數組。 var frag3 = animals.slice(-3); //等同于 animals.slice(2) var frag4 = animals.slice(-3,-1); //等同于 animals.slice(2,4)
concat()--連接兩個數組返回新數組
var colors = ["red", "green", "blue"]; var colors2 = colors.concat("yellow", ["black", "brown"]); alert(colors); //red,green,blue alert(colors2); //red,green,blue,yellow,black,brown
Javascript高級程序設計(第3版)
sort()--按升序排列數組項,即最小的值位于最前面,最大的值排在最后面(默認是按照最左邊的數字進行排序,不是按照數字大小排序的),返回值是排好的數組;
var values = [0, 1, 5, 10, 15]; values.sort(); console.log(values); //0,1,10,15,5 values.sort(function(a,b){ return a - b; //由小到大排序,b-a由大到小排序 })
reverse()--反轉數組項的順序(默認是按照最左邊的數字進行排序,不是按照數字大小排序的),返回值是反轉后的數組;
var values = [1, 22, 3, 43, 5]; values.reverse(); console.log(values); //5,43,3,22,1
indexOf()--查找某個元素的索引值,若有重復的,則返回第一個查到的索引值若不存在,則返回-1
var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.indexOf(4)); //3
lastIndexOf()--查找某個元素的索引值(從后往前),若有重復的,則返回第一個查到的索引值若不存在,則返回-1;
var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.lastIndexOf(4)); //5
forEach(callback)--遍歷數組。這個方法沒有返回值;
var numbers = [1,2,3,4,5,4,3,2,1]; numbers.forEach(function(item,index,array){ console.log(`value:${value} index:${index} array:${array}`) })
every(callback)--根據條件判斷,全部滿足,則返回true,否則false;
var numbers = [1,2,3,4,5,4,3,2,1]; var everyResult = numbers.every((v,i) => v < 3); alert(everyResult); //false
filter(callback)--對數組進行過濾,返回滿足條件的數組;
var numbers = [1,2,3,4,5,4,3,2,1]; var filterResult = numbers.filter((item, index, array) => item >2); alert(filterResult); //[3,4,5,4,3]
map(callback)--映射數組(遍歷數組),有return 返回一個新數組;
var numbers = [1,2,3,4,5,4,3,2,1]; var mapResult = numbers.map((item, index, array) => item * 2); alert(mapResult); //[2,4,6,8,10,8,6,4,2]
some(callback)--根據條件判斷,有一個滿足條件,則返回true;
var numbers = [1,2,3,4,5,4,3,2,1]; var someResult = numbers.map((item, index, array) => item > 2); alert(someResult); //true
reduce()--方法接收一個函數 callback 作為累加器([accumulator]()),數組中的每個值(從左到右)開始合并,最終為一個值。
接收四個參數:
preValue: 上一次調用回調返回的值,或者是提供的初始值(initialValue)前一個值
curValue: 數組中當前被處理的數組項(當前值)
index: 當前數組項在數組中的索引值(項的索引)
array: 調用 reduce()方法的數組
說這么多還是看代碼就清楚了
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); alert(sum); //15
`第一次執行回調函數,prev 是1,cur 是2。第二次,prev 是3(1 加2 的結果),cur 是3(數組
的第三項)。這個過程會持續到把數組中的每一項都訪問一遍,最后返回結果。`
reduceRight()--功能和 reduce() 功能是一樣的,不同的是 reduceRight() 從數組的末尾向前將數組中的數組項做累加;
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); alert(sum); //15
`第一次執行回調函數,prev 是5,cur 是4。當然,最終結果相同,因為執行的都
是簡單相加的操作。
使用reduce()還是reduceRight(),主要取決于要從哪頭開始遍歷數組。除此之外,它們完全
相同。`
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103107.html
摘要:語法和數據類型正文開始本章節復習的是中的基本語法,變量聲明,數據類型和字面量。聲明一個塊作用域的局部變量,可賦一個初始值。變量聲明有三種方式如,聲明局部變量和全局變量。 最近開始把精力放在重新復習JavaScript的基礎知識上面,不再太追求各種花枝招展的前端框架,框架再多,適合實際項目才是最重要。 上星期在掘金發布了幾篇文章,其中最大塊算是 【復習資料】ES6/ES7/ES8/ES...
摘要:前一個值,當前值,索引,數組對象產生新數組的迭代器方法類似,對數組的每個元素使用某個函數,并返回新數組和相似,傳入一個返回值為布爾類型的函數。 1. 前言 數組真的是每天用了,但是有很多方法都是記不住,總是要百度查,很煩,所以才寫了個數組使用總結,有什么不對的希望大家指出來。 2. 思路 先看看這些問題都記得很清楚么? 創建數組,怎么創建數組的 數組的構造方法Array有哪些方法?E...
摘要:本文章記錄本人在學習中看書理解到的一些東西,加深記憶和并且整理記錄下來,方便之后的復習。但是在開發的過程中,并不是所有的代碼復用都會使用到繼承。而且整個代碼都無法按照預期來運行。為了修復綁定對象與方法之間的關系。 本文章記錄本人在學習 JavaScript 中看書理解到的一些東西,加深記憶和并且整理記錄下來,方便之后的復習。 js 中復用代碼 說道代碼復用,一般都會涉及到對...
摘要:標準入門讀書筆記和命令新增命令,用于聲明變量,是塊級作用域。用于頭部補全,用于尾部補全。函數調用的時候會在內存形成一個調用記錄,又稱為調用幀,保存調用位置和內部變量等信息。等到執行結束再返回給,的調用幀才消失。 《ES6標準入門》讀書筆記 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...
閱讀 2907·2021-11-19 09:40
閱讀 3578·2021-10-09 09:43
閱讀 2675·2021-09-22 15:31
閱讀 1724·2021-07-30 15:31
閱讀 782·2019-08-30 15:55
閱讀 3257·2019-08-30 15:54
閱讀 1161·2019-08-30 11:26
閱讀 1907·2019-08-29 13:00