首頁 web前端 js教程 JS中數組Array的用法範例介紹_javascript技巧

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

May 16, 2016 pm 04:59 PM
array 陣列

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);
}

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用 foreach 迴圈移除 PHP 陣列中的重複元素? 如何使用 foreach 迴圈移除 PHP 陣列中的重複元素? Apr 27, 2024 am 11:33 AM

如何使用 foreach 迴圈移除 PHP 陣列中的重複元素?

PHP 陣列鍵值翻轉:不同方法的效能比較分析 PHP 陣列鍵值翻轉:不同方法的效能比較分析 May 03, 2024 pm 09:03 PM

PHP 陣列鍵值翻轉:不同方法的效能比較分析

PHP數組深度複製的藝術:使用不同方法完美複製 PHP數組深度複製的藝術:使用不同方法完美複製 May 01, 2024 pm 12:30 PM

PHP數組深度複製的藝術:使用不同方法完美複製

PHP數組多維排序實戰:從簡單到複雜場景 PHP數組多維排序實戰:從簡單到複雜場景 Apr 29, 2024 pm 09:12 PM

PHP數組多維排序實戰:從簡單到複雜場景

PHP 數組分組函數在資料整理的應用 PHP 數組分組函數在資料整理的應用 May 04, 2024 pm 01:03 PM

PHP 數組分組函數在資料整理的應用

深度複製PHP數組的最佳實踐:探索高效的方法 深度複製PHP數組的最佳實踐:探索高效的方法 Apr 30, 2024 pm 03:42 PM

深度複製PHP數組的最佳實踐:探索高效的方法

PHP 陣列分組函數在尋找重複元素中的作用 PHP 陣列分組函數在尋找重複元素中的作用 May 05, 2024 am 09:21 AM

PHP 陣列分組函數在尋找重複元素中的作用

PHP 數組合併去重演算法:平行的解決方案 PHP 數組合併去重演算法:平行的解決方案 Apr 18, 2024 pm 02:30 PM

PHP 數組合併去重演算法:平行的解決方案

See all articles