摘要:在,下,數據有添加成功,但返回值卻是轉換方法方法方法用于把數組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。而調用數組的方法后,其值的順序變成了。返回值如果從中刪除了元素,則返回的是含有被刪除的元素的數組。
轉換方法
所有對象都具有toLocaleString()、toString()、valueOf()方法。其中調用數組的toString方法會返回以數組中的每個值的字符串形式拼接而成的一個以逗號分割的字符串。
而調用valueOf()方法返回的還是數組。
var colors = ["red","blue","green"]; console.log(colors.toString()); console.log(colors.valueOf()); console.log(colors.toLocaleString());
得到的結果如圖所示:
另外toLocaleString()方法經常會返回跟toString()和valueOf()方法相同的值。但也不是總如此。當調用數組的toLocaleString()方法時,它也會創建一個數組值的以逗號分割的字符串。而與前兩個方法唯一不同的是,這一次為了取得每一項的值,調用的每一項的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
說明:由于alert()要接收字符串參數,所有它會在后臺調用toString()方法,得到跟直接調用toString()方法一樣的結果。
數組繼承的toLocaleString()、toString()、valueOf()方法,在默認情況下都會以逗號分割的字符串的形式返回數組項。可以使用join()方法,則可以使用不同的分隔符來構建這個字符串。
join()方法
join() 方法用于把數組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。返回一個字符串。
var colors = ["red","blue","green"]; console.log(colors.join(",")); //red,blue,green console.log(colors.join("||")); //red||blue||green棧方法(后進先出) ArrayObj.push()方法 ArrayObj.pop()方法
ArrayObj.push():就是向數組末尾添加新的元素,返回的是數組新的長度。
ArrayObj.pop():就是向數組中刪除數組最后一個元素并且返回該元素。如果數組為空就返回undefined。
ArrayObj.shift():方法用于把數組中的第一個元素刪除,并返回第一個元素的值。
如果數組是空的,則shift() 方法不進行任何操作,返回undefined。請注意,該方法不創建新數組,而是直接修改原來的數組。該方法會改變數組的長度。
ArrayObj.unshift() :該方法可把它的參數順序添加到數組的頭部。它直接修改了數組,而不是創建一個新的數組。返回的是新數組的長度。
unshift()在IE6,IE7下,數據有添加成功,但返回值卻是undefined.
join() 方法用于把數組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。返回一個字符串。
重排序方法 reverse()方法 sort()方法reverse()方法會對反轉數組項的順序。
var values = [1, 2, 3, 4, 5]; values.reverse(); alert(values); //5,4,3,2,1
這里數組的初始值及順序是1、2、3、4、5。而調用數組的reverse()方法后,其值的順序變成了5、4、3、2、1。
sort()方法按升序排列數組——即最小的值位于最前面,最大的值排在最后面。為了實現排序,sort()方法會調用每個數組項的toString()轉型方法,然后比較得到字符串,以確定如何排序。即使數組中的每一項都是數組,sort()方法比較的也是字符串,如下所示:
var values = [0, 1, 5, 10, 15]; values.sort(); alert(values); //0,1,10,15,5
種排序方式在很多情況下都不是最佳方案。因此sort()方法可以接受一個比較函數作為參數,以便我們指定那個值位于那個值的前面。
比較函數接受兩個參數,如果第一個參數應該位于第二個之前則返回一個負數,如果兩個參數相等,則返回0,如果第一個參數位于第二個之后則返回一個正數。以下就是一個簡單的比較函數:
function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } }
這個比較函數可以使用于大多數數據類型,只要將其作為參數傳遞給sort()方法即可,如下面這個例子所示:
var values = [0, 1, 2, 5, 10, 15]; values.sort(compare); alert(values); //0,1,5,10,15
在將比較函數傳遞到sort()方法之后,數值仍然保持了正確的升序。當然,也可以通過比較函數產生降序排序的結果,只要交換比較函數返回的值即可:
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()方法會返回值是經過排序之后的數組。
對于數值類型或者其valueOf方法會返回數值類型的對象類型,可以使用一個更簡單的比較函數。這個函數只要用第二個值減第一個值即可:
function compare(value1, value2) { return value2 - value1; }
由于比較函數通過返回一個小于零、等于零或大于零的值來影響排序結果,因此減法操作就可以適當處理所有情況。
操作方法 concat()方法 slice()方法 splice()方法concat() 方法用于連接兩個或多個數組。
該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
輸出的結果:1,2,3,4,5
slice(start,end)方法
start 必需。規定從何處開始選取。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1 指最后一個元素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那么切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。
返回值:返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
splice() 方法用于插入、刪除或替換數組的元素
語法:arrayObject.splice(index,howmany,element1,.....,elementX)
index 必需。規定從何處添加/刪除元素。
該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。
howmany 必需。規定應該刪除多少元素。必須是數字,但可以是 "0"。
如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。
element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。
elementX 可選。可向數組添加若干元素。
返回值:如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
說明:splice() 方法可刪除從 index 處開始的零個或多個元素,并且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
下面簡要概括一下slice()與splice()方法
slice(start, end); slice()方法返回從參數指定位置開始到當前數組末尾的所有項。如果有兩個參數,該方法返回起死和結束位置之間的項,但不包括結束位置的項。
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()有刪除,插入,替換的功能
刪除
需要兩個參數,要刪除的第一項的位置和要刪除的項數。
var colors = ["red", "green", "blue"]; var removed = colors.splice(0,1); console.log(colors); // greeen, blue console.log(removed); // red
插入
需要三個參數:起始位置、0(要刪除的項數)和要插入的項
var colors = ["red", "green", "blue"]; var removed = colors.splice(1,0,"yellow", "orange"); console.log(colors); // ["red", "yellow", "orange", "green", "blue"] console.log(removed); // 返回空
替換
需要三個參數:起始位置、要刪除的項數和要插入的任意數量的項。
var colors = ["red", "green", "blue"]; var removed = colors.splice(1,1,"yellow", "orange"); console.log(colors); // ["red", "yellow", "orange", "blue"] console.log(removed); // ["green"]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78406.html
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業務工作時也會不定期更...
摘要:前言月份開始出沒社區,現在差不多月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了一般來說,差不多到了轉正的時候,會進行總結或者分享會議那么今天我就把看過的一些學習資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區,現在差不多9月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了!一般來說,差不多到了轉正的時候,會進行總結或者分享會議!那么今天我就...
閱讀 2983·2021-10-27 14:16
閱讀 699·2021-10-13 09:39
閱讀 3695·2021-09-29 09:46
閱讀 2097·2019-08-30 15:54
閱讀 2603·2019-08-30 15:52
閱讀 2998·2019-08-30 15:44
閱讀 1107·2019-08-30 15:44
閱讀 503·2019-08-30 10:51