摘要:在,下,數(shù)據(jù)有添加成功,但返回值卻是轉(zhuǎn)換方法方法方法用于把數(shù)組中的所有元素放入一個(gè)字符串。元素是通過(guò)指定的分隔符進(jìn)行分隔的。而調(diào)用數(shù)組的方法后,其值的順序變成了。返回值如果從中刪除了元素,則返回的是含有被刪除的元素的數(shù)組。
轉(zhuǎn)換方法
所有對(duì)象都具有toLocaleString()、toString()、valueOf()方法。其中調(diào)用數(shù)組的toString方法會(huì)返回以數(shù)組中的每個(gè)值的字符串形式拼接而成的一個(gè)以逗號(hào)分割的字符串。
而調(diào)用valueOf()方法返回的還是數(shù)組。
var colors = ["red","blue","green"]; console.log(colors.toString()); console.log(colors.valueOf()); console.log(colors.toLocaleString());
得到的結(jié)果如圖所示:
另外toLocaleString()方法經(jīng)常會(huì)返回跟toString()和valueOf()方法相同的值。但也不是總?cè)绱恕.?dāng)調(diào)用數(shù)組的toLocaleString()方法時(shí),它也會(huì)創(chuàng)建一個(gè)數(shù)組值的以逗號(hào)分割的字符串。而與前兩個(gè)方法唯一不同的是,這一次為了取得每一項(xiàng)的值,調(diào)用的每一項(xiàng)的toLocaleString()方法,而不是toString()方法。如下面例子:
var person1 = { toLocaleString: function(){ return "Nikolaos"; }, toString: function(){ return "Nicholaos"; } } var person2 = { toLocaleString: function(){ return "Grigorios"; }, toString: function(){ return "Greg"; } } var person = [person1,person2]; alert(person); //Nicholaos,Greg alert(person.toString()); //Nicholaos,Greg alert(person.toLocaleString());//Nikolaos,Grigorios
說(shuō)明:由于alert()要接收字符串參數(shù),所有它會(huì)在后臺(tái)調(diào)用toString()方法,得到跟直接調(diào)用toString()方法一樣的結(jié)果。
數(shù)組繼承的toLocaleString()、toString()、valueOf()方法,在默認(rèn)情況下都會(huì)以逗號(hào)分割的字符串的形式返回?cái)?shù)組項(xiàng)??梢允褂胘oin()方法,則可以使用不同的分隔符來(lái)構(gòu)建這個(gè)字符串。
join()方法
join() 方法用于把數(shù)組中的所有元素放入一個(gè)字符串。元素是通過(guò)指定的分隔符進(jìn)行分隔的。返回一個(gè)字符串。
var colors = ["red","blue","green"]; console.log(colors.join(",")); //red,blue,green console.log(colors.join("||")); //red||blue||green棧方法(后進(jìn)先出) ArrayObj.push()方法 ArrayObj.pop()方法
ArrayObj.push():就是向數(shù)組末尾添加新的元素,返回的是數(shù)組新的長(zhǎng)度。
ArrayObj.pop():就是向數(shù)組中刪除數(shù)組最后一個(gè)元素并且返回該元素。如果數(shù)組為空就返回undefined。
ArrayObj.shift():方法用于把數(shù)組中的第一個(gè)元素刪除,并返回第一個(gè)元素的值。
如果數(shù)組是空的,則shift() 方法不進(jìn)行任何操作,返回undefined。請(qǐng)注意,該方法不創(chuàng)建新數(shù)組,而是直接修改原來(lái)的數(shù)組。該方法會(huì)改變數(shù)組的長(zhǎng)度。
ArrayObj.unshift() :該方法可把它的參數(shù)順序添加到數(shù)組的頭部。它直接修改了數(shù)組,而不是創(chuàng)建一個(gè)新的數(shù)組。返回的是新數(shù)組的長(zhǎng)度。
unshift()在IE6,IE7下,數(shù)據(jù)有添加成功,但返回值卻是undefined.
join() 方法用于把數(shù)組中的所有元素放入一個(gè)字符串。元素是通過(guò)指定的分隔符進(jìn)行分隔的。返回一個(gè)字符串。
重排序方法 reverse()方法 sort()方法reverse()方法會(huì)對(duì)反轉(zhuǎn)數(shù)組項(xiàng)的順序。
var values = [1, 2, 3, 4, 5]; values.reverse(); alert(values); //5,4,3,2,1
這里數(shù)組的初始值及順序是1、2、3、4、5。而調(diào)用數(shù)組的reverse()方法后,其值的順序變成了5、4、3、2、1。
sort()方法按升序排列數(shù)組——即最小的值位于最前面,最大的值排在最后面。為了實(shí)現(xiàn)排序,sort()方法會(huì)調(diào)用每個(gè)數(shù)組項(xiàng)的toString()轉(zhuǎn)型方法,然后比較得到字符串,以確定如何排序。即使數(shù)組中的每一項(xiàng)都是數(shù)組,sort()方法比較的也是字符串,如下所示:
var values = [0, 1, 5, 10, 15]; values.sort(); alert(values); //0,1,10,15,5
種排序方式在很多情況下都不是最佳方案。因此sort()方法可以接受一個(gè)比較函數(shù)作為參數(shù),以便我們指定那個(gè)值位于那個(gè)值的前面。
比較函數(shù)接受兩個(gè)參數(shù),如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之前則返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等,則返回0,如果第一個(gè)參數(shù)位于第二個(gè)之后則返回一個(gè)正數(shù)。以下就是一個(gè)簡(jiǎn)單的比較函數(shù):
function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } }
這個(gè)比較函數(shù)可以使用于大多數(shù)數(shù)據(jù)類(lèi)型,只要將其作為參數(shù)傳遞給sort()方法即可,如下面這個(gè)例子所示:
var values = [0, 1, 2, 5, 10, 15]; values.sort(compare); alert(values); //0,1,5,10,15
在將比較函數(shù)傳遞到sort()方法之后,數(shù)值仍然保持了正確的升序。當(dāng)然,也可以通過(guò)比較函數(shù)產(chǎn)生降序排序的結(jié)果,只要交換比較函數(shù)返回的值即可:
function compare(value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } } var values = [0, 1, 2, 5, 10, 15]; values.sort(compare); alert(values); //15,10,5,1,0
reverse()和sort()方法會(huì)返回值是經(jīng)過(guò)排序之后的數(shù)組。
對(duì)于數(shù)值類(lèi)型或者其valueOf方法會(huì)返回?cái)?shù)值類(lèi)型的對(duì)象類(lèi)型,可以使用一個(gè)更簡(jiǎn)單的比較函數(shù)。這個(gè)函數(shù)只要用第二個(gè)值減第一個(gè)值即可:
function compare(value1, value2) { return value2 - value1; }
由于比較函數(shù)通過(guò)返回一個(gè)小于零、等于零或大于零的值來(lái)影響排序結(jié)果,因此減法操作就可以適當(dāng)處理所有情況。
操作方法 concat()方法 slice()方法 splice()方法concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。
該方法不會(huì)改變現(xiàn)有的數(shù)組,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本。
輸出的結(jié)果:1,2,3,4,5
slice(start,end)方法
start 必需。規(guī)定從何處開(kāi)始選取。如果是負(fù)數(shù),那么它規(guī)定從數(shù)組尾部開(kāi)始算起的位置。也就是說(shuō),-1 指最后一個(gè)元素,-2 指倒數(shù)第二個(gè)元素,以此類(lèi)推。
end 可選。規(guī)定從何處結(jié)束選取。該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)。如果沒(méi)有指定該參數(shù),那么切分的數(shù)組包含從 start 到數(shù)組結(jié)束的所有元素。如果這個(gè)參數(shù)是負(fù)數(shù),那么它規(guī)定的是從數(shù)組尾部開(kāi)始算起的元素。
返回值:返回一個(gè)新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
splice() 方法用于插入、刪除或替換數(shù)組的元素
語(yǔ)法:arrayObject.splice(index,howmany,element1,.....,elementX)
index 必需。規(guī)定從何處添加/刪除元素。
該參數(shù)是開(kāi)始插入和(或)刪除的數(shù)組元素的下標(biāo),必須是數(shù)字。
howmany 必需。規(guī)定應(yīng)該刪除多少元素。必須是數(shù)字,但可以是 "0"。
如果未規(guī)定此參數(shù),則刪除從 index 開(kāi)始到原數(shù)組結(jié)尾的所有元素。
element1 可選。規(guī)定要添加到數(shù)組的新元素。從 index 所指的下標(biāo)處開(kāi)始插入。
elementX 可選??上驍?shù)組添加若干元素。
返回值:如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數(shù)組。
說(shuō)明:splice() 方法可刪除從 index 處開(kāi)始的零個(gè)或多個(gè)元素,并且用參數(shù)列表中聲明的一個(gè)或多個(gè)值來(lái)替換那些被刪除的元素。
下面簡(jiǎn)要概括一下slice()與splice()方法
slice(start, end); slice()方法返回從參數(shù)指定位置開(kāi)始到當(dāng)前數(shù)組末尾的所有項(xiàng)。如果有兩個(gè)參數(shù),該方法返回起死和結(jié)束位置之間的項(xiàng),但不包括結(jié)束位置的項(xiàng)。
var colors = ["red", "green", "blue", "yellow", "purple"]; var colors2 = colors.slice(1); var colors3 = colors.slice(1,4); console.log(colors2); // green, blue, yellow, purple console.log(colors3); // green, blue, yellow
splice()有刪除,插入,替換的功能
刪除
需要兩個(gè)參數(shù),要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)。
var colors = ["red", "green", "blue"]; var removed = colors.splice(0,1); console.log(colors); // greeen, blue console.log(removed); // red
插入
需要三個(gè)參數(shù):起始位置、0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng)
var colors = ["red", "green", "blue"]; var removed = colors.splice(1,0,"yellow", "orange"); console.log(colors); // ["red", "yellow", "orange", "green", "blue"] console.log(removed); // 返回空
替換
需要三個(gè)參數(shù):起始位置、要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)。
var colors = ["red", "green", "blue"]; var removed = colors.splice(1,1,"yellow", "orange"); console.log(colors); // ["red", "yellow", "orange", "blue"] console.log(removed); // ["green"]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/78406.html
摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類(lèi)中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類(lèi) - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...
摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類(lèi)中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類(lèi) - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:前言月份開(kāi)始出沒(méi)社區(qū),現(xiàn)在差不多月了,按照工作的說(shuō)法,就是差不多過(guò)了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了一般來(lái)說(shuō),差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議那么今天我就把看過(guò)的一些學(xué)習(xí)資源主要是博客,博文推薦分享給大家。 1.前言 6月份開(kāi)始出沒(méi)社區(qū),現(xiàn)在差不多9月了,按照工作的說(shuō)法,就是差不多過(guò)了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了!一般來(lái)說(shuō),差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議!那么今天我就...
閱讀 3085·2021-10-27 14:16
閱讀 772·2021-10-13 09:39
閱讀 3915·2021-09-29 09:46
閱讀 2171·2019-08-30 15:54
閱讀 2665·2019-08-30 15:52
閱讀 3086·2019-08-30 15:44
閱讀 1185·2019-08-30 15:44
閱讀 563·2019-08-30 10:51