摘要:第二種方式稱為數(shù)組字面量表示法。是對數(shù)組進行排序。方法方法可以說是數(shù)組中功能最強大的方法,集多項功能于一身。的返回值為刪除的元素組成的數(shù)組。不改變數(shù)組的方法轉(zhuǎn)換方法方法主要是用來將數(shù)組的元素通過規(guī)定的方式連接成字符串。
作為最常用的類型,JavaScript中的數(shù)組還是和其他語言中有很大的區(qū)別的。
主要體現(xiàn)在兩點:
數(shù)組中的每一項都可以保存任何類型的數(shù)據(jù)
數(shù)組的大小可以動態(tài)調(diào)整
首先來介紹創(chuàng)建數(shù)組的兩種方法
1.第一種方式
var arr1 = new Array(); var arr2 = new Array(3); var arr3 = new Array("jerry");
可以看到這種方式建立數(shù)組,arr1是一個空數(shù)組,arr2是一個長度為3的數(shù)組,arr3是一個包含‘jerry’一個元素的數(shù)組。同時通過這種方式創(chuàng)建的數(shù)組,new操作符可以省略。
2.第二種方式稱為數(shù)組字面量表示法。
var a = []; var arr = ["tom","jack"]
數(shù)組的長度是可動態(tài)調(diào)整,導(dǎo)致我們直接就可以設(shè)置它的長度
var a = [123,423]; a.length = 10; a[9]="123"; console.log(a[8])//undefined a[10] = "123" console.log(a.length)//10
從上面的代碼中我們可以看出:
如果我們設(shè)置的長度大于原來的數(shù)組的長度的時候, 數(shù)組后面的元素自動設(shè)置為undefined。
如果我們對大于當前數(shù)組長度的位置賦值的時候,那么就會導(dǎo)致數(shù)組的長度自動變?yōu)槟闼x值位置+1.
我們可以把數(shù)組的方法分為三類
改變數(shù)組的方法 棧方法pop和push很簡單,也很容易理解。pop就是從數(shù)組的末尾刪除一個元素并返回。push是在數(shù)組的末尾添加一個元素。
var arr = [1,3,4]; arr.pop(); console.log(arr);//[1,3] arr.push(5); console.log(arr);//[1,3,5]隊列方法
shift和unshift是和棧方法是相對的,它倆是從數(shù)組的頭部進行操作。shift是從頭部刪除一個元素,unshift是從同步加入一個元素。
var arr = [1,3,4]; arr.shift(); console.log(arr);//[3,4] arr.unshift(5); console.log(arr);//[5,3,4]重排序方法
reverse是對數(shù)組進行翻轉(zhuǎn)。
var arr = [1,3,4]; arr.reverse(); console.log(arr);//[4,3,1]
sort是對數(shù)組進行排序。
var arr = [1,3,5,4]; arr.sort(); console.log(arr);//[1,3,4,5];
sort默認的對數(shù)組進行升序排序。sort可以接收一個自定義的比較函數(shù),自定義排序規(guī)則。
sort方法會調(diào)用每個元素的toString()方法,從而通過字符串進行比較大小。即使是數(shù)值,依然要變換成字符串,從而就會帶來一些問題。比如
var arr = [1,3,15,4]; arr.sort() console.log(arr);//[1,15,3,4];
轉(zhuǎn)換為字符串之后,‘15’是排在‘3’,‘4’的前面的。這就帶來了問題,所以在進行數(shù)值數(shù)組的排序,必須進行自定義排序規(guī)則。
var arr = [1,3,15,4]; function compare(v1,v2){ if(v1 > v2) return 1; if(v1 < v2) return -1; return 0; } arr.sort(compare) console.log(arr);//[1,3,4,15]splice方法
splice方法可以說是數(shù)組中功能最強大的方法,集多項功能于一身。主要的用途就是用來向數(shù)組的中部插入元素。
splice方法主要有三種用法。
splice的返回值為刪除的元素組成的數(shù)組。如果刪除的元素為空,返回空數(shù)組。
刪除元素
splice(index,count),index表示刪除的位置,count表示刪除的項數(shù)。
var arr = [1,3,4]; console.log(arr.splice(2,1));//[4] //刪除元素 console.log(arr);[1,3];
插入元素
splice(index,0,element,....)
index 表示要插入的位置,0代表刪除0個元素,element要插入的元素,如果要插入多個元素,可以繼續(xù)添加。
var arr = [1,3,4]; console.log(arr.splice(2,0,"tom"));//[ ] console.log(arr);//[1,3,"tom",4]
如果index的值大于數(shù)組本身的長度,那么就在最后位置添加。且數(shù)組的長度只會加1.
var arr = [1,3,4]; console.log(arr.splice(5,0,"tom"));//[ ] console.log(arr);//[1,3,4,"tom"] console.log(arr.length);//4
如果index的值為負數(shù),那么就從(arr.length+index)位置開始插入,如果(arr.length+index)的值小于0,那么就從數(shù)組的開始位置進行插入。
var arr = [1,3,4,4,7,6]; console.log(arr.splice(-1,0,"tom"));//[ ] console.log(arr);//[1,3,4,4,7,"tom",6] console.log(arr.length);//7 console.log(arr.splice(-7,0,"tom"));//[ ] console.log(arr);//["tom",1,3,4,4,7,"tom",6] console.log(arr.length);//8 console.log(arr.splice(-10,0,"jack"));//[ ] console.log(arr);//["jack","tom",1,3,4,4,7,"tom",6] console.log(arr.length);//9
替換元素
splice(index,count,element,....).index代表替換開始的位置,count > 0,element表示要替換成的元素。其實替換過程包含兩個過程:1.刪除. 2插入.也就是上面的兩個過程的融合。
var arr = [1,3,4]; console.log(arr.splice(1,1,"tom"));//[3] console.log(arr);//[1,"tom",4]
如果index大于數(shù)組的長度,或者小于0,處理的結(jié)果同上面插入元素處理的方式一樣。
不改變數(shù)組的方法 轉(zhuǎn)換方法join方法主要是用來將數(shù)組的元素通過規(guī)定的方式連接成字符串。
var arr = [1,3,4,5]; console.log(arr.join(","))//1,3,4,5 console.log(arr.join("+"))//1+3+4+5 console.log(arr.join("?"))//1?3?4?5 console.log(arr)//[1,3,4,5]操作方法
slice和concat方法。
slice方法主要用來返回指定位置的數(shù)組的子數(shù)組。slice(start,end)。end省略,返回的是從開始位置到數(shù)組的末尾。end不省略,返回的是從start到end之間的子數(shù)組,包括start位置但不包括end位置的數(shù)組。
var arr = [1,3,4,5]; console.log(arr.slice(1));//[3,4,5] console.log(arr.slice(1,2));//[3]
如果slice方法的參數(shù)中有一個負數(shù),則用數(shù)組長度加上該數(shù)來確定相應(yīng)的位置。例如在一個長度為5的數(shù)組上調(diào)用slice(-2,-1)與調(diào)用slice(3,4)得到的結(jié)果相同。如果結(jié)束位置小于起始位置,則返回空數(shù)組。
concat 方法,主要是連接多個數(shù)組。
var arr = [1,3,4,5]; var testArr = [1,23,4]; console.log(arr.concat(testArr));//[1,3,4,5,1,23,4] console.log(arr.concat("tom"));//[1,3,4,5,"tom"]迭代方法
ES5新增加的迭代方法主要包括如下幾種
map
every
some
fliter
forEach
這幾個方法有一下共同點,都接收兩個參數(shù),一個是要在數(shù)組上每一項運行的函數(shù),一個是運行該函數(shù)作用域的對象,改變this的指向(可選)。其中函數(shù)需要傳入三個參數(shù),一個是每個元素的值,每個元素的index,數(shù)組本身。
function(value,index,array) { }
下面一個一個的來介紹
map
map返回數(shù)組中每一個數(shù)組元素經(jīng)過傳入的函數(shù)處理后組成的新數(shù)組
var arr = [1,3,4]; var newArr = arr.map(function(value,index,array){ return value*2; }) console.log(newArr);//[2,6,8] console.log(arr);//[1,3,4]
some和every
some和every比較相像。some是對每一個數(shù)組中的元素運行傳入的函數(shù),如果有一個返回true,那么就返回true;every是對每一個數(shù)組中的元素運行傳入的函數(shù),如果所有的都返回true,那么就返回true。
var arr = [1,3,4]; var result1 = arr.some(function(value,index,array){ return value > 2; }) var result2 = arr.every(function(value,index,array){ return value > 2; }) console.log(result1);// true console.log(result2);// false
filter
從名字可以看出,這是一個過濾的方法,返回的一個數(shù)組,這個數(shù)組是滿足傳入的參數(shù)的函數(shù)的元素所組成的。
var arr = [1,3,4]; var result = arr.filter(function(value,index,array){ return value > 2; }) console.log(result);// [3,4]
forEach
forEach主要用來遍歷,遍歷數(shù)組中每一個元素,對其進行操作。該方法沒有返回值。
var arr = [1,3,4]; arr.forEach(function(value,index,array){ console.log("arr["+index+"]="+value); }) // 結(jié)果 arr[0]=1 arr[1]=3 arr[2]=4縮小方法
reduce和reduceRight.這兩個方法接收兩個參數(shù),一個是每項都運行的函數(shù),一個是縮小基礎(chǔ)的初始值(可選)。reduce和reduceRight返回的是一個值。其中每項都運行的函數(shù)包含四個參數(shù),
funciton(prev,cur,index,array){ }
下面通過一個例子就可以說明這個函數(shù)是干嘛的。
var arr = [1,3,4]; var result = arr.reduce(function(prev,cur,index,array){ return prev+cur; },10); console.log(result)//18 var result1 = arr.reduce(function(prev,cur,index,array){ return prev+cur; }); console.log(result1)//8
reduceRight和reduce一樣,無非他開始的位置是從數(shù)組的后面。
其他方法indexOf()
lastIndexOf()
這兩個主要是用來判斷元素在數(shù)組中的位置,未找到返回-1,接收兩個參數(shù),indexOf(searchElement[, fromIndex]),lastIndexOf(searchElement[, fromIndex])。fromIndex可選。其中formIndex也可以指定字符串。
var arr = [1,3,4,4,1,5,1]; var value = arr.indexOf(1) console.log(value)//0 value = arr.indexOf(1,4) console.log(value)//4 value = arr.indexOf(1,5) console.log(value)//6 value = arr.lastIndexOf(1) console.log(value)//6 value = arr.lastIndexOf(1,3) console.log(value)//0
toString()
toLocalString()
valueOf()
這三個方法是所有對象都具有的方法。
toString()返回的是一個字符串,toLocaleString同它類似。valueOf()返回的是一個數(shù)組
var arr= [1,3,4] console.log(arr.toString());//1,3,4 console.log(arr.valueOf());//[1,3,4] console.log(arr.toLocaleString());//1,3,4
可以復(fù)寫toString(),toLocaleString()返回不同的結(jié)果。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/94923.html
摘要:關(guān)于中的數(shù)組做出了如下總結(jié)數(shù)組是用來存儲一組不同類型的數(shù)據(jù)的容器。可以使用構(gòu)造函數(shù)的方法和字面量的方法來聲明函數(shù)訪問數(shù)組通過下標的方法來訪問可以獲得數(shù)組長度。 關(guān)于JavaScript中的數(shù)組做出了如下總結(jié):1、數(shù)組是用來存儲一組不同類型的數(shù)據(jù)的容器。可以使用構(gòu)造函數(shù)的方法和字面量的方法來聲明函數(shù);訪問數(shù)組通過下標的方法來訪問;arr.length可以獲得數(shù)組長度。2、數(shù)組棧方法包括:...
摘要:并列數(shù)據(jù)的集合數(shù)組用方括號表示。第三種類型是映射,也就是一個名值對,即數(shù)據(jù)有一個名稱,還有一個與之相對應(yīng)的值,這又稱作散列或字典,比如首都北京。中有種簡單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。數(shù)值布爾值對象和字符串值都有方法。 什么是JSON JSON:JavaScript 對象表示法(JavaScript Object Notation)。 JSON的形式是用大括號{}包圍起來的項目列表...
摘要:中基礎(chǔ)數(shù)據(jù)類型數(shù)據(jù)類型名稱數(shù)據(jù)類型說明只有一個值,即,聲明變量的初始值。只有一個值,即,表示空指針,的值是派生的值。由零或多個位字符組成只有兩個值,即和該類型使用來表示整數(shù)和浮點數(shù)。中的對象其實就是一組數(shù)據(jù)和功能的集合。 JavaScript 中基礎(chǔ)數(shù)據(jù)類型 數(shù)據(jù)類型名稱 數(shù)據(jù)類型說明 Undefined 只有一個值,即 undefined ,聲明變量的初始值。 Nul...
摘要:數(shù)組去重方法的總結(jié)前言在中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問題,請指正。 JavaScript數(shù)組去重方法的總結(jié) 前言 在JavaScript中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問題,請指正。 簡單粗暴的一種,ES6中set方法: var arr = [1,2,2,3,3,4,5,5]; console.log([...new Se...
摘要:函數(shù)作用通過函數(shù)來封裝多條任意語句,可以在任何地方時候多次調(diào)用執(zhí)行函數(shù)使用聲明,后跟一組參數(shù)以及函數(shù)體。數(shù)組棧方法有數(shù)組頭部添加值,返回新數(shù)組,刪除數(shù)組中第一個值,返回被刪除的值數(shù)組尾部添加值,返回新數(shù)組數(shù)組尾部刪除值,返回被刪除的值 1、函數(shù)作用:通過函數(shù)來封裝多條任意語句,可以在任何地方、時候多次調(diào)用執(zhí)行;函數(shù)使用function聲明,后跟一組參數(shù)以及函數(shù)體。2、return:立即...
摘要:日常開發(fā)中我們難免需要對數(shù)組和對象進行遍歷,今天抽空來總結(jié)下遍歷數(shù)組和對象常用的方法。使用遍歷對象注只能遍歷出自身可枚舉的屬性,而不能遍歷出原型鏈上面的屬性。 日常開發(fā)中我們難免需要對數(shù)組和對象進行遍歷,今天抽空來總結(jié)下遍歷數(shù)組和對象常用的方法。 Javascript遍歷數(shù)組總結(jié) 我們定義一個數(shù)組 var arr = [2,4,6]; 1.使用for循環(huán)遍歷 var lengt...
閱讀 1129·2021-10-27 14:13
閱讀 2636·2021-10-09 09:54
閱讀 897·2021-09-30 09:46
閱讀 2424·2021-07-30 15:30
閱讀 2166·2019-08-30 15:55
閱讀 3409·2019-08-30 15:54
閱讀 2847·2019-08-29 14:14
閱讀 2771·2019-08-29 13:12