javascript Array對象基礎知識小結

來源:互聯網
上載者:User

對於Array對象我的總結思想是:5法,3招,12式

1.聲明5法:只針對一維數組,當然還有二維三維,這裡就不做解釋了
複製代碼 代碼如下:var a = new Array();
var a = new Array;
var a = new Array(10);//建立Array對象,並指定數組中項的個數
var a = new Array("red","blue","green");
var a = ["red"," blue"," green"];

2.屬性3招:constructor,length,prototype
constructor表示建立對象的函數。 constructor 屬性是所有具有 prototype 的對象的成員。它們包括除 Global 和 Math 對象以外的所有 JScript 固有對象。constructor 屬性儲存了對構造特定對象執行個體的函數的引用。例如: 複製代碼 代碼如下:x = new String("Hi");
if (x.constructor == String)
// 進行處理(條件為真)。

function MyFunc {
// 函數體。
}
y = new MyFunc;
if (y.constructor == MyFunc)
// 進行處理(條件為真)。

Length表示數組的長度,有多少項。這個就不寫樣本了。
prototype返回物件類型原型的引用。用 prototype 屬性提供對象的類的一組準系統。對象的新執行個體“繼承”賦予該對象原型的操作。
例如,要為 Array 對象添加返回數組中最大元素值的方法。要完成這一點,聲明該函數,將它加入 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.方法12式:concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法 複製代碼 代碼如下://1.concat():返回一個新數組,這個新數組是由兩個或更多數組組合而成的。
var a1 = [1,2,3,4];
var a2 = a1.concat("5",'6');
alert(a2); //結果:1,2,3,4,5,6
//2.join():返回字串值,其中包含了串連到一起的數組的所有元素,元素由指定的分隔字元分隔開來。
var a1 = [1,2,3,4];
var a2 = a1.join();
var a3 = a1.join(",");
var a4 = a1.join("|");
alert(a2); //結果:1,2,3,4
alert(a3); //結果:1,2,3,4
alert(a4); //結果:1|2|3|4
//3.pop():移除數組中的最後一個元素並返回該元素。如果該數組為空白,那麼將返回 undefined。
var a1 = [1,2,3,4];
var item = a1.pop();
alert(item); //結果:4
alert(a1);//結果:1,2,3
//4.push():將新元素添加(追加)到一個數組中,並返回數組的新長度值。push 方法將以新元素出現的順序添加這些元素。如果參數之一為數組,那麼該數組將作為單個元素添加到數組中。如果要合并兩個或多個數組中的元素,請使用 concat 方法。
var a1 = [1,2,3,4];
a1.push(5);
a1.push("6");
alert(a1);//結果:1,2,3,4,5,6
//5.reverse():返回一個元素順序被反轉的 Array 對象。
var a1 = [1,2,3,4];
a1.reverse();
alert(a1);//結果:4,3,2,1
//6.shift():移除數組中的第一個元素並返回該元素。
var a1 = [1,2,3,4];
a1.shift();
alert(a1);//結果:2,3,4
//7.unshift():將指定的元素插入數組開始位置並返回該數組。
var a1 = [1,2,3,4];
a1.unshift(5);
alert(a1);//結果:5,1,2,3,4
//8.slice():返回一個數組的一段。a1.slice(start, [end]),slice 方法一直複製到 end 所指定的元素,但是不包括該元素。如果 start 為負,將它作為 length + start處理,此處 length 為數組的長度。如果 end 為負,就將它作為 length + end 處理,此處 length 為數組的長度。如果省略 end ,那麼 slice 方法將一直複製到 arrayObj 的結尾。如果 end 出現在 start 之前,不複製任何元素到新數組中。
var a1 = [1,2,3,4];
var a2 = a1.slice(-1);
var a3 = a1.slice(0,-1);
var a4 = a1.slice(1);
alert(a2);//結果:4
alert(a3);//結果:1,2,3
alert(a4);//結果:2,3,4
//9.splice():從一個數組中移除一個或多個元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
//arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
var a1 = [1,2,3,4];
var a2 = a1.splice(1,0);
var a3 = a1.splice(1,1);
var a4 = a1.splice(1,1,"5");
alert(a2);//結果:
alert(a3);//結果:2
alert(a1);//結果:1,5,4
//10.sort():返回一個元素已經進行了排序的 Array 對象。
var a1 = [2,3,1,4,"b","a"];
var a2 = a1.sort();
alert(a2);//結果:1,2,3,4,a,b
//11.toString():返回對象的字串表示。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.toString();
alert(a2);//結果:1,2,3,4,b,a
//12.valueOf():返回指定對象的原始值。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.valueOf();
alert(a2);//結果:1,2,3,4,b,a

indexOf擴充:
複製代碼 代碼如下:if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};
function testIndexOf()
{
var a =[1,2,3,4];
alert(a.indexOf(3));
}
<input type="button" value="測試擷取數組下標" onclick="testIndexOf()" />

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.