js數組的基本操作(很全自己整理的)_javascript技巧
用 js有很久了,但都沒有深究過js的陣列形式。偶爾用用也就是簡單的string.split(char)。這段時間做的一個項目,用到陣列的地方很多,自以為js高手的自己居然無從下手,一下狠心,我學!呵呵。學了之後才知道,js數組的功能強大很,遠比VB,C#強多了,大家慢慢看吧
1、陣列的建立
var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值
要說明的是,雖然第二種方法建立數組指定了長度,但實際上所有情況下數組都是變長的,也就是說即使指定了長度為5,仍然可以將元素儲存在規定長度以外的,注意:這時長度會隨之改變。
2、陣列的元素的存取
var testGetArrValue=arrayObj[1]; //取得陣列的元素值
arrayObj[1]= "這是新值"; //給陣列元素一個新的值
3、陣列元素的添加
代碼
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度 arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
4、陣列元素的刪除
arrayObj.pop(); //移除最后一个元素并返回该元素值 arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移 arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素
5、陣列的截取與合併
arrayObj.slice(start, [end]); //以陣列的形式傳回陣列的一部分,注意不包含 end 對應的元素,如果省略 end 將複製 start 之後的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //將多個數組(也可以是字串,或者是數組和字串的混合)連接為一個數組,傳回連接好的新的陣列
6、陣列的拷貝
arrayObj.slice(0); //傳回數組的拷貝數組,注意是一個新的數組,不是指向
arrayObj.concat(); //傳回數組的拷貝數組,注意是一個新的數組,不是指向
7.陣列元素的排序
arrayObj.reverse(); //反轉元素(最前面的排到最後、最後的排到最前),回傳陣列位址
arrayObj.sort(); //對陣列元素排序,傳回陣列位址
8、陣列元素的字串化
arrayObj.join(separator); //傳回字串,這個字串將陣列的每一個元素值連接在一起,中間用 separator 隔開。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
二、陣列物件的3個屬性
1、length 屬性
Length屬性表示陣列的長度,即其中元素的個數。因為陣列的索引總是由0開始,所以一個陣列的上下限分別是:0和length-1。和其他大多數語言不同的是,JavaScript數組的length屬性是可變的,這一點需要特別注意。當length屬性被設定得更大時,整個數組的狀態事實上不會發生變化,僅僅是length屬性變大;當length屬性被設定得比原來小時,則原先數組中索引大於或等於length的元素的值全部被遺失。以下是示範改變length屬性的範例:
代碼
var arr=[12,23,5,3,25,98,76,54,56,76]; //定义了一个包含10个数字的数组 alert(arr.length); //显示数组的长度10 arr.length=12; //增大数组的长度 alert(arr.length); //显示数组的长度已经变为12 alert(arr[8]); //显示第9个元素的值,为56 arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃 alert(arr[8]); //显示第9个元素已经变为"undefined" arr.length=10; //将数组长度恢复为10 alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"
由上面的程式碼我們可以清楚的看到length屬性的性質。但length物件不僅可以明確的設置,它也有可能被隱式修改。 JavaScript中可以使用一個未宣告過的變數,同樣,也可以使用一個未定義的陣列元素(指索引超過或等於length的元素),這時,length屬性的值將會被設定為所使用元素索引的值加1。例如下面的程式碼:
var arr=[12,23,5,3,25,98,76,54,56,76]; alert(arr.length); arr[15]=34; alert(arr.length);
程式碼中同樣是先定義了一個包含10個數字的數組,透過alert語句可以看出其長度為10。隨後使用了索引為15的元素,將其賦值為15,即 arr[15]=34,這時再用alert語句輸出數組的長度,得到的是16。無論如何,對於習慣強型別程式設計的開發人員來說,這是一個很令人驚訝的功能。事實上,使用new Array()形式建立的數組,其初始長度就是為0,而正是對其中未定義元素的操作,才會使數組的長度改變。
由上面的介紹可以看到,length屬性是如此的神奇,利用它可以方便的增加或減少數組的容量。因此對length屬性的深入了解,有助於在開發過程中靈活運用。
2、prototype 屬性
傳回物件類型原型的參考。 prototype 屬性是 object 共有的。
objectName.prototype
objectName 參數是object物件的名稱。
說明:
用 prototype 屬性提供物件的類別的一組基本功能。 物件的新實例「繼承」賦予該物件原型的操作。
對於數組對象,以以下範例說明prototype 屬性的用途。
給數組物件添加返回數組中最大元素值的方法。要完成這一點,請聲明一個函數,將它加入 Array.prototype, 並使用它。
代碼
function array_max() { var i, max = this[0]; for (i = 1; i < this.length; i++) { if (max < this[i]) max = this[i]; } return max; } Array.prototype.max = array_max; var x = new Array(1, 2, 3, 4, 5, 6); var y = x.max();
該程式碼執行後,y 儲存數組 x 中的最大值,或說 6。
3、constructor 屬性
表示建立物件的函數。
object.constructor //object是物件或函數的名稱。
說明:constructor 屬性是所有具有 prototype 的物件的成員。它們包括除 Global 和 Math 物件以外的所有 JScript 固有物件。 constructor 屬性保存了對建構特定物件實例的函數的參考。
例如:
x = new String("Hi");
if (x.constructor == String) // 進行處理(條件為真)。
或
function MyFunc {
// 函數體。
}
y = new MyFunc;
if (y.constructor == MyFunc) // 進行處理(條件為真)。
對於數組來說:
y = new Array();

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

什麼是PHP? PHP代表超文本預處理器,是一種用於Web開發的熱門伺服器端腳本語言。它旨在創建動態和互動式網頁。 PHP嵌入在HTML程式碼中並在伺服器上執行,產生傳送到客戶端瀏覽器的HTML輸出。憑藉其簡單易學的語法,PHP允許開發人員建立動態網站、處理表單資料、與資料庫互動以及執行各種伺服器端任務。它擁有龐大的庫和框架生態系統,可增強其功能並使開發人員能夠創建強大且可擴展的Web應用程式。 PHP受到託管提供者的廣泛支持,使其成為Web開發專案的首選。如何在PHP中將字串放入陣列並按換行符號分割方

PHP是一種廣泛使用的伺服器端腳本語言,可以透過許多不同的方式進行陣列操作。本文將介紹我們編寫PHP程式碼時的最佳實踐,幫助您建立更有效率、更美觀、更可讀的程式碼。 1.使用陣列函數而不是手動循環最好使用PHP數組函數,而不是手動循環數組來移動、操作或修改資料。 PHP數組函數執行較快,具有更好的可讀性和可維護性。以下是一些常用的PHP數組函數:array_push(

在PHP8.0版本中,數字組合併操作是經過了改進的。這個改進主要針對的是數組資料類型的合併操作。在先前的版本中,PHP提供的數組合併操作是使用“+”符號實現的。但是,這種方法存在一些問題。如果兩個數組中包含相同的鍵,那麼第二個數組的鍵值將會覆蓋第一個數組中的鍵值,如果需要把兩個數字組合在一起,那麼就需要技巧地使用array_merge()函數了。現在,在PHP

PHP8.0中陣列中的危險操作:array_splice()在PHP程式設計中,陣列是一個非常常用的資料結構,它允許我們在一個變數中儲存多個值。而array_splice()函數則是一個處理數組的方法,它可以刪除或替換數組中的元素。但是,在PHP8.0中,array_splice()函數卻有一些危險操作,如果使用不當,將會導致一些嚴重的問題。本文將為大家詳細介紹

使用PHP自訂函數可擴展數組交集和並集功能,自訂交集函數允許按鍵或值查找交集,而自訂並集函數按鍵或值查找並集。這使您能夠基於特定需求靈活操作陣列。

在PHP中,陣列是一種非常常見且有用的資料結構。 PHP提供了許多不同的函數和方法來操作和處理這些陣列。其中一個非常有用的函數是array_diff()。本文將詳細討論此函數。 array_diff()函數的基本用法非常簡單。此函數接受兩個或多個數組作為參數,並傳回一個新數組,其中包含第一個數組中存在,但其他數組中不存在的元素。下面是一個範例:$array1=

PHP數組鍵值互換的最佳方案:使用內建的array_flip()函數,時間複雜度為O(n)。對於較大的數組,array_flip()的效能優勢更明顯。實戰案例:可使用array_flip()將購物車中商品名稱陣列轉換為商品數量陣列。

PHP陣列如何新增和刪除元素在PHP中,陣列是一種非常常見且重要的資料結構。陣列可以容納多個值,並且能夠根據需要動態增加或減少元素。本文將介紹如何在PHP中新增和刪除陣列元素,並提供對應的程式碼範例。一、新增元素使用方括號[]語法新增元素最簡單的方法是使用方括號[]語法。範例如下:$arr=["apple",&quo
