JavaScript數(shù)組常用方法
來(lái)源:易賢網(wǎng) 閱讀:836 次 日期:2015-03-06 11:29:46
溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript數(shù)組常用方法”,方便廣大網(wǎng)友查閱!

判斷某個(gè)對(duì)象是否是數(shù)組: instanceof、Array.isArray()

對(duì)于一個(gè)網(wǎng)頁(yè)或者一個(gè)全局作用域可以使用instanceof操作符。

if(value instanceof Array){ //判斷value是否是數(shù)組

}

instanceof操作符它假設(shè)只有一個(gè)全局執(zhí)行環(huán)境,如果網(wǎng)頁(yè)包含多個(gè)框架則使用ECMAScript5新增的Array.isArray()方法。

if(Array.isArray(value)){//判斷value是否是數(shù)組

}

Array.isArray()方法支持的瀏覽器有IE9+、Firefor 4+、Safari5+、Opera 10.5+、Chrome。

如果要在未實(shí)現(xiàn)這個(gè)方法中的瀏覽器中檢查數(shù)組,則使用:

if(Object.prototype.toString.call(value)=="[object Array]"){

}

將數(shù)組轉(zhuǎn)換為字符串: toLocaleString()、toString()、valueOf()、join()

代碼如下:

var test=['a','b','c'];

alert(test.toString());//a,b,c

alert(test.toLocaleString());//a,b,c

alert(test.valueOf());//a,b,c

alert(test);//a,b,c 默認(rèn)調(diào)用toString()方法

alert(test.join(','));//a,b,c

alert(test.join('|'));//a|b|c

添加和移除數(shù)組元素方法:push()、pop()、unshift()、shift()

push()方法可以接受任意數(shù)量的參數(shù),把他們逐個(gè)加到數(shù)組末尾,并且返回?cái)?shù)組修改后的數(shù)組長(zhǎng)度。

pop()方法從數(shù)組末尾移除最后一項(xiàng),然后返回移除的項(xiàng)。

unshift()方法在數(shù)組前端添加任意數(shù)量的參數(shù)并返回新數(shù)組長(zhǎng)度。

shift()方法能夠移除數(shù)組中第一個(gè)項(xiàng)并返回移除的項(xiàng)。

代碼如下:

var test=[];

var count = test.push('a','b');//從數(shù)組末尾逐個(gè)添加

count =test.push('c');

alert(count);//3

alert(test);//

var item = test.pop();

alert(item);//c

alert(test.length);//2

排序方法:reverse()和sort()

reverse()方法會(huì)反轉(zhuǎn)數(shù)組項(xiàng)順,操作數(shù)組本身。

sort()方法默認(rèn)按升序排列數(shù)組項(xiàng),操作數(shù)組本身。

代碼如下:

var test=[1,2,3,4,5];

test.reverse();

alert(test);//5,4,3,2,1

var test2=[0,1,5,10,15];

test2.sort();

alert(test2);//0,1,10,15,5 sort()方法會(huì)調(diào)用每個(gè)數(shù)組項(xiàng)的toString()方法,比較字符串,以確定排序。所以這里排序是字符串排序

sort()方法還可以傳入一個(gè)比較函數(shù)。

比較函數(shù)在第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之前則返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等則返回0,第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之后則返回一個(gè)正數(shù)。

代碼如下:

function compare(value1,value2){

if(value1<value2){

return -1;

}else if(value1>value2){

return 1;

}else{

return 0;

}

}

var test=[0,1,5,10,15];

test.sort(compare);

alert(test);//0,1,5,10,15

操作方法:concat()、slice()、splice()

concat()方法用于連接兩個(gè)或多個(gè)數(shù)組。該方法不會(huì)改變現(xiàn)有的數(shù)組,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本。返回一個(gè)新的數(shù)組。

代碼如下:

var a = [1,2,3];

alert(a.concat(4,5));//1,2,3,4,5

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

var arr2 = new Array(3)

arr2[0] = "James"

arr2[1] = "Adrew"

arr2[2] = "Martin"

alert(arr.concat(arr2));

//George,John,Thomas,James,Adrew,Martin

var arr = new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

var arr2 = new Array(3)

arr2[0] = "James"

arr2[1] = "Adrew"

arr2[2] = "Martin"

var arr3 = new Array(2)

arr3[0] = "William"

arr3[1] = "Franklin"

alert(arr.concat(arr2,arr3))

//George,John,Thomas,James,Adrew,Martin,William,Franklin

slice() 方法可從已有的數(shù)組中返回選定的元素。返回一個(gè)新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。

代碼如下:

var test =['a','b','c','d','e'];

var arr1=test.slice(1);

var arr2=test.slice(1,4);

alert(arr1);//b,c,d,e

alert(arr2);//b,c,d

splice() 方法向/從數(shù)組中添加/刪除項(xiàng)目,然后返回被刪除的項(xiàng)目。操作數(shù)組本身。

第一個(gè)參數(shù):起始位置、第二個(gè)參數(shù):截取的個(gè)數(shù)、第三個(gè)參數(shù):追加的新元素。

代碼如下:

//刪除

var test=['a','b','c'];

var removed=test.splice(0,1)//刪除第一項(xiàng)

alert(test);//b,c

alert(removed);//a 返回被刪除的項(xiàng)

//插入

var test2=['a','b','c'];

var removed2=test2.splice(1,0,'d','e')//從位置1開(kāi)始插入d,e

alert(test2);//a,d,e,b,c

alert(removed2)//空數(shù)組

//替換

var test3=['a','b','c'];

var removed3=test3.splice(1,1,'d','e')//從位置1開(kāi)始插入d,e

alert(test3);//a,d,e,c

alert(removed3)//b

位置方法:indexOf()、lastIndexOf()

ECMAScript5提供方法支持瀏覽器:IE9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome

indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。

lastIndexOf() 方法可返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索。

一個(gè)參數(shù)時(shí):表示要查找的值,返回索引位置(從0開(kāi)始)、兩個(gè)參數(shù)時(shí):第一個(gè)參數(shù)表示起始位置,第二個(gè)參數(shù)表示要查找的值。

代碼如下:

var numbers=[1,2,3,4,5,4,3,2,1];

alert(numbers.indexOf(4));//3

alert(numbers.lastIndexOf(4));//5

alert(numbers.IndexOf(4,4));//5

alert(numbers.lastIndexOf(4,4));//3

迭代方法:every()、filter()、forEach()、map()、some()

ECMAScript5提供方法支持瀏覽器:IE9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome

every():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)每一項(xiàng)都返回true,則返回true。

filter():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組。

forEach():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),這個(gè)方法沒(méi)有返回值。

map():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。

some():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)任一項(xiàng)返回true,則返回true。

以上函數(shù)都不會(huì)修改數(shù)組中包含的值。

代碼如下:

var numbers=[1,2,3,4,5,4,3,2,1];

//every()

var everyResult=numbers.every(function(item,index,array){

return (item>2);

})

alert(everyResult);//false

//some()

var someResult=numbers.some(function(item,index,array){

return (item>2);

})

alert(someResult);//true

//filter()

var filterResult=numbers.filter(function(item,index,array){

return (item>2);

})

alert(filterResult);//[3,4,5,4,3]

//map()

var mapResult=numbers.map(function(item,index,array){

return (item*2);

})

alert(mapResult);//[2,4,6,8,10,8,6,4,2]

//forEach()

numbers.forEach(function(item,index,array){

//執(zhí)行操作 無(wú)返回值

})

歸并方法:reduce()、reduceRight()

ECMAScript5提供方法支持瀏覽器:IE9+、Firefox 3+、Safari 4+、Opera 10.5+、Chrome

兩個(gè)方法都會(huì)迭代數(shù)組的所以項(xiàng),然后構(gòu)建一個(gè)最終返回的值。reduce()方法從數(shù)組第一項(xiàng)開(kāi)始,reduceRight()方法從數(shù)組最后開(kāi)始。

代碼如下:

var values=[1,2,3,4,5];

var sum=valuse.reduce(function(prev,cur,index,array){

prev+cur;

});

alert(sum);//15

以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:JavaScript數(shù)組常用方法
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)