本文介紹了Js的Array 陣列對象,具體內容如下
目錄
1. 介紹:介紹 Array 陣列物件的說明、定義方式、屬性。
2. 實例方法:介紹 Array 物件的實例方法:concat、every、filter、forEach、indexOf、join、lastIndexOf、map、pop、push、reverse、shift、slice、sort、splice、toString、tounshift等。
3. 靜態方法:介紹 Array 物件的靜態方法:Array.isArray()。
4. 實際操作:對 Array 進行範例操作:索引、for遍歷、淺度複製、深度複製等操作。
一. 介紹
1.1 說明
陣列是數值的有序集合。每個值叫做一個元素,而每個元素在陣列中都有一個位置,以數字表示,稱為索引。 JavaScript陣列是無型別:陣列元素可以是任意型別,而且同一個陣列中的不同元素也可能有不同的型別。 --《JavaScript權威指南(第六版)》
1.2 定義方式
1 2 3 |
|
1.3 屬性
length:表示陣列內的元素長度。
二. 實例方法
常用方法:
1) unshift() :在陣列頭部插入元素
2) shift() :移除並傳回陣列的第一個元素
3) push() :在陣列尾部插入元素
4) pop() :移除並傳回陣列的最後一個元素
2.1 concat() :把元素銜接到陣列中。不會修改原先的array,傳回新的陣列
參數:
①value1,value2.....valueN :任多個值
傳回值:
{Array} 一個新的數組,包含原先的Array和新加入的元素。
範例:
1 2 3 4 |
|
2.2 every() :依序遍歷元素,判斷每個元素是否都為true
參數:
①function(value,index,self){} :每個元素都會使用此函數判斷是否為true,當判斷到一個為false時,立即結束遍歷。
value :陣列遍歷的元素
index :元素序號
self :Array本身
傳回值:
{Boolean} :只有每個元素都為true才回傳true;只要一個為false,就回傳false。
範例:
1 2 3 4 5 6 |
|
2.3 filter() :依序遍歷元素,傳回包含符合條件元素的新的陣列
參數:
①function(value,index,self){} :每個元素依序呼叫此函數,傳回包含符合條件元素的新的陣列。
value :陣列遍歷的元素
index :元素序號
self :Array本身
傳回值:
{Array} 一個包含符合條件元素的新的陣列
範例:
1 2 3 4 5 |
|
2.4 forEach() :依序遍歷元素,執行指定的函數;無回傳值
參數:
①function(value,index,self){} :每個元素依序呼叫此函數
value :陣列遍歷的元素
index :元素序號
self :Array本身
傳回值:無
範例:
1 2 3 4 |
|
2.5 indexOf() :在陣列中尋找匹配元素。若不存在符合的元素時,就回傳-1。尋找的時候使用"==="運算符,所以要區分1和'1'
參數:
①value :要在陣列中尋找的值。
②start :開始尋找的序號位置,如果省略,則為0.
傳回值:
{Int} :傳回數組中第一個符合value的序號,若不存在,則回傳-1
範例:
1 2 3 4 |
|
2.6 join() :將陣列中所有元素透過一個分隔符號拼接為一個字串
參數:
①sparator {String}:各元素之間的分隔符,如果省略,預設以因為英文逗號','分隔。
傳回值:
{String} :各元素以sparator為分隔符,拼接而成的一個字串。
範例:
1 2 |
|
2.7 lastIndexOf :在陣列中反向尋找符合元素。若不存在符合的元素時,就回傳-1。尋找的時候使用"==="運算符,所以要區分1和'1'
參數:
①value :要在陣列中尋找的值。
②start :開始尋找的序號位置,如果省略,則從最後一個元素開始尋找。
傳回值:
{Int} :從右到左開始找出數組中第一個符合value的序號,若不存在,回傳-1
範例:
1 2 3 4 5 |
|
2.8 map() :依次遍历并计算每个元素,返回计算好的元素的数组
参数:
①function(value,index,self){} :每个元素依次调用此函数,返回计算好的元素
value :数组遍历的元素
index :元素序号
self :Array本身
返回值:
{Array} 一个包含就算好的元素的新的数组
示例:
1 2 3 4 |
|
2.9 pop() :移除并返回数组的最后一个元素
参数:无
返回值:
{Object} 数组的最后一个元素;若数组为空,返回undefined
示例:
1 2 3 4 5 |
|
2.10 push() :把元素添加到数组尾部
参数:
①value1,value2.....valueN :任意多个值添加到数组尾部
返回值:
{int} 数组新的长度
示例:
1 2 3 4 |
|
2.11 reverse() :反转数组元素的顺序
参数:无
返回值:无(在原数组内进行元素顺序反转)。
示例:
1 2 3 |
|
2.12 shift() :移除并返回数组的第一个元素
参数:无
返回值:
{Object} 数组的第一个元素;若数组为空,返回undefined。
示例:
1 2 3 4 5 |
|
2.13 slice(startIndex,endIndex) :返回数组的一部分
参数:
①startIndex :开始处的序号;若为负数,表示从尾部开始计算,-1代表最后一个元素,-2倒数第二个,依此类推。
②endIndex : 结束处的元素后一个序号,没指定就是结尾。截取的元素不包含此处序号的元素,结尾为此处序号的前一个元素。
返回值:
{Array} 一个新的数组,包含从startIndex到endIndex前一个元素的所有元素。
示例:
1 2 3 4 5 |
|
2.14 sort(opt_orderFunc) :按一定的规则进行排序
参数:
①opt_orderFunc(v1,v2) {Function}:可选的排序规则函数。若省略,将按照元素的字母进行从小到大排序。
v1 :遍历时前面的元素。
v2 :遍历时后面的元素。
排序规则:
比较v1和v2,返回一个数字来表示v1和v2的排序规则:
小于0 :v1小于v2,v1排在v2的前面。
等于0 :v1等于v2,v1排在v2的前面。
大于0 :v1大于v2,v1排在v2的后面。
返回值:无(在原先数组里进行排序操作)。
示例:
1 2 3 4 5 6 7 8 9 10 |
|
2.15 splice() :插入、删除数组元素
参数:
①start {int} :开始插入、删除或替换的起始序号。
②deleteCount {int} :要删除元素的个数,从start处开始计算。
③value1,value2 ... valueN {Object} :可选参数,表示要插入的元素,从start处开始插入。若②参不为0,那么先执行删除操作,再执行插入操作。
返回值:
{Array} 返回一个包含删除元素的新的数组。若②参为0,表示没元素删除,返回一个空数组。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
2.16 toString() :将数组中所有元素通过一个英文逗号','拼接为一个字符串
参数:无
返回值:
{String} 数组中所有元素通过一个英文逗号','拼接为一个字符串,并返回。与调用无参join()方法一样。
示例:
1 2 |
|
2.17 unshift() :在数组头部插入元素
参数:
①value1,value2.....valueN :任意多个值添加到数组头部
返回值:
{int} 数组新的长度
示例:
1 2 3 4 5 6 |
|
三. 静态方法
3.1 Array.isArray() :判断对象是否为数组
参数:
①value {Object}:任意对象
返回值:
{Boolean} 返回判断结果。当为 true时,表示对象为数组;为false时,表示对象不是数组
示例:
1 2 3 4 |
|
四. 实际操作
4.1 索引
说明:每个元素在数组中有一个位置,以数字表示,称为索引。索引是从0开始计,即第一个元素的索引为0,第二个元素的索引为1,依此类推;
当获取一个数组不存在的索引时,返回 undefined。
示例:
1 2 3 4 5 |
|
4.2 for 语句
说明:可以通过for语句逐个遍历数组
示例:
1 2 3 4 |
|
4.3 浅度复制
说明:Array类型是一种引用类型;当数组a复制给数组b时,对数组b进行元素修改,数组a也会发生修改。
示例:
1 2 3 4 5 |
|
4.4 深度复制
说明:使用concat()方法,返回新的数组;防止浅度复制的情况发生,对数组b进行元素修改操作,数组a不发生变更。
示例:
1 2 3 4 5 |
|
4.5 判断2个数组是否相等
说明:Array数组为引用类型,所以哪怕 []===[] 都会返回false,所以可通过数组toString()方法返回的字符串判断是否相等。
示例:
1 2 3 |
|
以上就是本文的全部内容,希望对大家学习javascript Array对象有所帮助。