首頁 > web前端 > js教程 > 主體

JS中數組Array的用法範例介紹_javascript技巧

WBOY
發布: 2016-05-16 16:59:04
原創
1160 人瀏覽過

new Array()
new Array(len)
new Array([item0,[item1,[item2,...]]]
使用陣列物件的方法:
var objArray=new Array ();
objArray.concact([item1[,item2[,....]]]-------------------將參數清單連接到objArray的後面形成一個新的數組並返回,原有數組不受影響。 ;
將傳回包含從"a"到"e"字母元素的陣列。 ---以separator指定的字元作為分割符,將陣列轉換為字串,當seperator 為逗號時,其作用和toString()相同。通俗的講,就是彈出數組的最後一個元素。最後一個元素。 1,2,3, 4].push("a","b")將得到[1,2,3,4,"a","b"]
objArray.reverse()將數組中的元素反轉排列。 ()-----------移去陣列的第一個元素,並傳回這個元素的值。 >objArray.slice(start,end)----------- 傳回數組物件的子集,索引從start開始(包括start),到end結束(不包括end),原有數組不受影響。地值。如果end小於等於start,將會傳回空數組。
objArray.sort(comparefn)------- 根據comparefn定義的大小比較函數,對一個陣列進行排序。函數comparefn必須接受兩個參數element1,element2,如果需要需要element1排在element2之前,應該返回一個負數;如果需要element1排在element2之後,應該返回一個正數,如果兩個數平等對待(即保持原有順序)則回傳0。當省略comparefn時,元素會依照字典順序排列。如:定義的比較函數cmp: function cmp(e1,e2){return e1-e2;}則[3,4,2,7].sort(cmp)將會得到[2,3,4,7].
objArray.splice(start,deleteCount[,item1,item2[,...]]]) 這是一個複雜的函數,用於完成陣列元素的刪除取代和插入操作。其中,start參數表示要進行操作的索引位置,deleteCount指從start開始要刪除的元素的元素個數(包括了start位置),如果deleteCount省略,則表示從start開始要刪除陣列的剩餘部分。 [,item1[,item2[,...]]]則表示可選的插入到start之前的元素清單。如:
var arr=[0,1,2,3,4,5,6];
arr.splice(1,1);
document.write(arr);//顯示“ 0,2,3,4,5,6」
arr=[0,1,2,3,4,5,6];
arr.splice(0,0,"a","b ");
document.write(arr);//顯示「a,b,0,1,2,3,4,5,6"
arr=[0,1,2,3,4 ,5,6];
arr.splice(3,2,"c","d");
document.write(arr);//顯示"0,1,2,c,d, 5,6"
objArray.unshift(item1[,item2[,...]]])------------------- 將參數清單插入到陣列的開頭。其性質和push方法類型,但push方法是將元素添加到數組的結尾。如: [1,2,3,4].unshift("a","b")將會得到["a","b",1,2,3,4]。

js陣列元素的加入與刪除一直比較迷惑,今天終於找到詳細說明的資料了,先給個我測試的程式碼^-^
var arr = new Array();
arr[0] = "aaa";
arr[1] = "bbb";
arr[2] = "ccc";
//alert(arr.length);//3
arr.pop();
//alert(arr.length);//2
//alert(arr[arr.length-1]);//bbb
arr.pop() ;
//alert(arr[arr.length-1]);//aaa
//alert(arr.length);//1

var arr2 = new Array();
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
//alert(arr2.length) ;//2
arr2.pop();
//alert(arr2.length);//1
arr2 = arr2.slice(0,arr2.length-1);
/ /alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
arr2[2] = "ccc";
arr2 = arr2.slice(0,1);
alert(arr2.length);//1
alert(arr2[0]);//aaa
alert(arr2[1]);/ /undefined

shift:刪除原數組第一項,並傳回刪除元素的值;如果陣列為空則回傳undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1

unshift:將參數加到原始數組開頭,並傳回數組的長度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3, 4,5] b:7
註:在IE6.0下測試回傳值總為undefined,FF2.0下測試回傳值為7,所以這個方法的回傳值不可靠,需要用回傳值時可用splice代替本方法來使用。

pop:刪除原數組最後一項,並傳回刪除元素的值;如果陣列為空則傳回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5//不用回傳的話直接呼叫就可以了

push:將參數加到原數組末尾,並傳回數組的長度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3, 4,5,6,7] b:7

concat:傳回一個新數組,是將參數加到原數組中構成的
var a = [1,2,3,4,5 ];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]

splice(start,deleteCount,val1,val2,...):從start位置開始刪除deleteCount項,並從該位置起插入val1,val2,...

在清空數組時,只需傳遞startIndex。

如果不刪除所有元素,再傳遞deleteCount參數。

splice也具有先刪除後新增的功能,即先刪除幾個元素,然後在刪除的位置再加入若干元素,刪除與新增的元素的個數沒有必須相等,這時侯deleteCount也是要用到的。
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7, 8,9,5] b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length;//同unshift
var b = a.splice(a.length-1,1);//同pop
a.splice(a.length,0,6,7 ); var b = a.length; //同push

reverse:將陣列反序
var a = [1,2,3,4,5];
var b = a .reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]

sort(orderfunction):依指定的參數對陣列進行排序
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5] b:[ 1,2,3,4,5]

slice(start,end):傳回從原數組指定開始下標到結束下標之間的項組成的新數組
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5 ]

join(separator):將陣列的元素組起一個字串,以separator為分隔符,省略的話則用預設用逗號為分隔符號
var a = [1,2,3 ,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"

再給個利用陣列模擬javaStringBuffer處理字串的方法:

複製程式碼 程式碼
/**
* 字串處理函數
*/
function StringBuffer() {
var arr = new Array;
this.append = function(str) {
arr[arr. length] = str;
};

this.toString = function() {
return arr.join("");//把append進來的陣列ping成字串
};
}

今天在應用中突然發現join是一種把數組轉換成字串的好方法,故封裝成物件使用了:

複製程式碼 程式碼如下:
/**
*把陣列轉換成特定符號分割的字串
*/
function arrayToString(arr,separator) {
if(!separator) separator = "";//separator為null則預設為空
return arr.join(separator);
}

/**
* 尋找陣列包含的字串
* /
function arrayFindString(arr,string) {
var str = arr.join("");
return str.indexOf(string);
}

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板