JavaScript中的Array物件

2021-09-24 22:27:11 字數 3137 閱讀 8504

1.1   constructor

返回對建立此物件的陣列函式的引用。

語法:object.constructor //object是物件或函式的名稱。

說明:constructor 屬性是所有具有 prototype 的物件的成員。它們包括除 global 和 math 物件以外的所有 jscript 固有物件。constructor 屬性儲存了對構造特定物件例項的函式的引用。

例如:

var arr1 = new array();   //

size可選,不是上限,是長度

document.write(arr1.constructor); //

function array()

document.write(arr1.constructor == array); //

true

1.2   length

設定或返回陣列中元素的數目。需要說明的是,如果設定的值比其當前值小,陣列將被截斷,其尾部的元素將丟失。如果設定的值比它的當前值大,陣列將增大,新的元素被新增到陣列的尾部,它們的值為 undefined。

1.3 prototype

使您有能力向物件新增屬性和方法。prototype 屬性是 object 共有的。

語法:objectname.prototype;//objectname 引數是object物件的名稱。

說明:用 prototype 屬性提供物件的類的一組基本功能。 物件的新例項「繼承」賦予該物件原型的操作。

對於陣列物件,以下例子說明prototype 屬性的用途。

function

setname(name)

//建立乙個陣列並賦值

var arr2 = ["zhangsan", "lisi"];

array.prototype.setname =setname;

arr2.setname("人員列表");

document.write(arr2.name);

//人員列表

2.1 陣列的建立

//

建立乙個陣列

var arr1 = new array([size]); //

size可選,不是上限,是長度

arr1[0] = "zhangsan"; //

給陣列賦值

arr1[2] = "lisi";

//建立乙個陣列並賦值

var arr2 = ["zhangsan", "lisi"];

var arr3 = new array("zhangsan", "lisi");

要說明的是,所有情況下陣列都是會變的,也就是說即使指定了長度,仍然可以將元素儲存在規定長度以外的。

2.2陣列的元素的訪問

var testgetarrvalue=arrayobj[1]; //

獲取陣列的元素值

arrayobj[1]= "這是新值"; //

給陣列元素賦予新的值

2.3陣列元素的新增

arrayobj. push([item1 [item2 [. . . [itemn ]]]]);//

將乙個或多個新元素新增到陣列結尾,並返回陣列新長度

arrayobj.unshift([item1 [item2 [. . . [itemn ]]]]);//

將乙個或多個新元素新增到陣列開始,陣列中的元素自動後移,返回陣列新長度

arrayobj.splice(insertpos,0,[item1[, item2[, . . . [,itemn]]]]);//

將乙個或多個新元素插入到陣列的指定位置,插入位置的元素自動後移,返回""。

【注】多個元素之間用逗號割開:

arr2.push("wangwu", "zhaoliu");   //

["wangwu", "zhaoliu"],這樣則是將陣列作為arr2乙個元素新增

2.4陣列元素的刪除

arrayobj.pop(); //

移除最後乙個元素並返回該元素值

arrayobj.shift(); //

移除最前乙個元素並返回該元素值,陣列中元素自動前移

arrayobj.splice(deletepos,deletecount); //

刪除從指定位置deletepos開始的指定數量deletecount的元素,陣列形式返回所移除的元素

2.5 陣列的擷取和合併

arrayobj.slice(start, [end]); //

以陣列的形式返回陣列的一部分,注意不包括 end 對應的元素,

//如果省略 end 將複製 start 之後的所有元素,使用方式與stringobject.slice(start[,end])相似。

arrayobj.concat([item1[, item2[, . . . [,itemn]]]]); //

將多個陣列(也可以是字串,或者是陣列和字串的混合)連線為乙個陣列,返回連線好的新的陣列。

2.6 陣列的拷貝

arrayobj.slice(0); //

返回陣列的拷貝陣列,注意是乙個新的陣列,不是指向

arrayobj.concat(); //

返回陣列的拷貝陣列,注意是乙個新的陣列,不是指向

2.7 陣列元素的排序

arrayobj.reverse(); //

反轉元素(最前的排到最後、最後的排到最前),返回陣列位址

arrayobj.sort([sortby]); //

對陣列元素排序,返回陣列位址,預設按字元編號順序進行排序。sortby必須是函式,或者lambda表示式,如(a,b)=>a-b表示按數值大小公升序排序。

2.8 陣列元素的字串化

arrayobj.join(separator); //

返回字串,這個字串將陣列的每乙個元素值連線在一起,中間用 separator 隔開。

tolocalestring 、tostring 、valueof:可以看作是join的特殊用法,不常用

arr陣列的方法

1.concat 方法用於合併兩個或多個陣列 let num1 5 let num2 6,7 let nums num1.concat num2 alert nums num1 0 push 4 alert nums 2.filter 方法建立乙個新陣列,其包含通過所提供函式實現的測試的所有元素 l...

js中如何判斷arr是Array型別

今天筆試題碰到乙個問題是js中判斷是array型別 array屬於引用型別,是不能夠用typeof來判斷的,用來判斷的方法如下 1.用instanceof來判斷 var arr 1,2,3 arr instanceof array true2.constructor屬性 每個物件都有construc...

JavaScript中的this詳解

this屬於js的底層知識,了解this之後,能夠實現一些基本的功能,但是感覺最重要的是,this是物件導向必不可少的組成部分,如果希望能夠逐漸的掌握物件導向,this必然是不可少的。檢視this指向的一句話法則 永遠指向其所在函式的所有者如果沒有所有者時,指向window。理解this的要點 關鍵...