javascript Array對(duì)象基礎(chǔ)知識(shí)小結(jié)
更新時(shí)間:2010年11月16日 22:35:26 作者:
感覺(jué)自己對(duì)Array對(duì)象總是有種朦朧的感覺(jué),今天自己手寫總結(jié),加深一下印象。
對(duì)于Array對(duì)象我的總結(jié)思想是:5法,3招,12式
1.聲明5法:只針對(duì)一維數(shù)組,當(dāng)然還有二維三維,這里就不做解釋了
var a = new Array();
var a = new Array;
var a = new Array(10);//創(chuàng)建Array對(duì)象,并指定數(shù)組中項(xiàng)的個(gè)數(shù)
var a = new Array("red","blue","green");
var a = ["red"," blue"," green"];
2.屬性3招:constructor,length,prototype
constructor表示創(chuàng)建對(duì)象的函數(shù)。 constructor 屬性是所有具有 prototype 的對(duì)象的成員。它們包括除 Global 和 Math 對(duì)象以外的所有 JScript 固有對(duì)象。constructor 屬性保存了對(duì)構(gòu)造特定對(duì)象實(shí)例的函數(shù)的引用。例如:
x = new String("Hi");
if (x.constructor == String)
// 進(jìn)行處理(條件為真)。
或
function MyFunc {
// 函數(shù)體。
}
y = new MyFunc;
if (y.constructor == MyFunc)
// 進(jìn)行處理(條件為真)。
Length表示數(shù)組的長(zhǎng)度,有多少項(xiàng)。這個(gè)就不寫示例了。
prototype返回對(duì)象類型原型的引用。用 prototype 屬性提供對(duì)象的類的一組基本功能。對(duì)象的新實(shí)例“繼承”賦予該對(duì)象原型的操作。
例如,要為 Array 對(duì)象添加返回?cái)?shù)組中最大元素值的方法。要完成這一點(diǎn),聲明該函數(shù),將它加入 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( );
該代碼執(zhí)行后,y 保存數(shù)組 x 中的最大值,或說(shuō) 6。
3.方法12式:concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法
//1.concat():返回一個(gè)新數(shù)組,這個(gè)新數(shù)組是由兩個(gè)或更多數(shù)組組合而成的。
var a1 = [1,2,3,4];
var a2 = a1.concat("5",'6');
alert(a2); //結(jié)果:1,2,3,4,5,6
//2.join():返回字符串值,其中包含了連接到一起的數(shù)組的所有元素,元素由指定的分隔符分隔開來(lái)。
var a1 = [1,2,3,4];
var a2 = a1.join();
var a3 = a1.join(",");
var a4 = a1.join("|");
alert(a2); //結(jié)果:1,2,3,4
alert(a3); //結(jié)果:1,2,3,4
alert(a4); //結(jié)果:1|2|3|4
//3.pop():移除數(shù)組中的最后一個(gè)元素并返回該元素。如果該數(shù)組為空,那么將返回 undefined。
var a1 = [1,2,3,4];
var item = a1.pop();
alert(item); //結(jié)果:4
alert(a1);//結(jié)果:1,2,3
//4.push():將新元素添加(追加)到一個(gè)數(shù)組中,并返回?cái)?shù)組的新長(zhǎng)度值。push 方法將以新元素出現(xiàn)的順序添加這些元素。如果參數(shù)之一為數(shù)組,那么該數(shù)組將作為單個(gè)元素添加到數(shù)組中。如果要合并兩個(gè)或多個(gè)數(shù)組中的元素,請(qǐng)使用 concat 方法。
var a1 = [1,2,3,4];
a1.push(5);
a1.push("6");
alert(a1);//結(jié)果:1,2,3,4,5,6
//5.reverse():返回一個(gè)元素順序被反轉(zhuǎn)的 Array 對(duì)象。
var a1 = [1,2,3,4];
a1.reverse();
alert(a1);//結(jié)果:4,3,2,1
//6.shift():移除數(shù)組中的第一個(gè)元素并返回該元素。
var a1 = [1,2,3,4];
a1.shift();
alert(a1);//結(jié)果:2,3,4
//7.unshift():將指定的元素插入數(shù)組開始位置并返回該數(shù)組。
var a1 = [1,2,3,4];
a1.unshift(5);
alert(a1);//結(jié)果:5,1,2,3,4
//8.slice():返回一個(gè)數(shù)組的一段。a1.slice(start, [end]),slice 方法一直復(fù)制到 end 所指定的元素,但是不包括該元素。如果 start 為負(fù),將它作為 length + start處理,此處 length 為數(shù)組的長(zhǎng)度。如果 end 為負(fù),就將它作為 length + end 處理,此處 length 為數(shù)組的長(zhǎng)度。如果省略 end ,那么 slice 方法將一直復(fù)制到 arrayObj 的結(jié)尾。如果 end 出現(xiàn)在 start 之前,不復(fù)制任何元素到新數(shù)組中。
var a1 = [1,2,3,4];
var a2 = a1.slice(-1);
var a3 = a1.slice(0,-1);
var a4 = a1.slice(1);
alert(a2);//結(jié)果:4
alert(a3);//結(jié)果:1,2,3
alert(a4);//結(jié)果:2,3,4
//9.splice():從一個(gè)數(shù)組中移除一個(gè)或多個(gè)元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
//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);//結(jié)果:
alert(a3);//結(jié)果:2
alert(a1);//結(jié)果:1,5,4
//10.sort():返回一個(gè)元素已經(jīng)進(jìn)行了排序的 Array 對(duì)象。
var a1 = [2,3,1,4,"b","a"];
var a2 = a1.sort();
alert(a2);//結(jié)果:1,2,3,4,a,b
//11.toString():返回對(duì)象的字符串表示。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.toString();
alert(a2);//結(jié)果:1,2,3,4,b,a
//12.valueOf():返回指定對(duì)象的原始值。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.valueOf();
alert(a2);//結(jié)果:1,2,3,4,b,a
indexOf擴(kuò)展:
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="測(cè)試獲取數(shù)組下標(biāo)" onclick="testIndexOf()" />
1.聲明5法:只針對(duì)一維數(shù)組,當(dāng)然還有二維三維,這里就不做解釋了
復(fù)制代碼 代碼如下:
var a = new Array();
var a = new Array;
var a = new Array(10);//創(chuàng)建Array對(duì)象,并指定數(shù)組中項(xiàng)的個(gè)數(shù)
var a = new Array("red","blue","green");
var a = ["red"," blue"," green"];
2.屬性3招:constructor,length,prototype
constructor表示創(chuàng)建對(duì)象的函數(shù)。 constructor 屬性是所有具有 prototype 的對(duì)象的成員。它們包括除 Global 和 Math 對(duì)象以外的所有 JScript 固有對(duì)象。constructor 屬性保存了對(duì)構(gòu)造特定對(duì)象實(shí)例的函數(shù)的引用。例如:
復(fù)制代碼 代碼如下:
x = new String("Hi");
if (x.constructor == String)
// 進(jìn)行處理(條件為真)。
或
function MyFunc {
// 函數(shù)體。
}
y = new MyFunc;
if (y.constructor == MyFunc)
// 進(jìn)行處理(條件為真)。
Length表示數(shù)組的長(zhǎng)度,有多少項(xiàng)。這個(gè)就不寫示例了。
prototype返回對(duì)象類型原型的引用。用 prototype 屬性提供對(duì)象的類的一組基本功能。對(duì)象的新實(shí)例“繼承”賦予該對(duì)象原型的操作。
例如,要為 Array 對(duì)象添加返回?cái)?shù)組中最大元素值的方法。要完成這一點(diǎn),聲明該函數(shù),將它加入 Array.prototype, 并使用它。
復(fù)制代碼 代碼如下:
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( );
該代碼執(zhí)行后,y 保存數(shù)組 x 中的最大值,或說(shuō) 6。
3.方法12式:concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法
復(fù)制代碼 代碼如下:
//1.concat():返回一個(gè)新數(shù)組,這個(gè)新數(shù)組是由兩個(gè)或更多數(shù)組組合而成的。
var a1 = [1,2,3,4];
var a2 = a1.concat("5",'6');
alert(a2); //結(jié)果:1,2,3,4,5,6
//2.join():返回字符串值,其中包含了連接到一起的數(shù)組的所有元素,元素由指定的分隔符分隔開來(lái)。
var a1 = [1,2,3,4];
var a2 = a1.join();
var a3 = a1.join(",");
var a4 = a1.join("|");
alert(a2); //結(jié)果:1,2,3,4
alert(a3); //結(jié)果:1,2,3,4
alert(a4); //結(jié)果:1|2|3|4
//3.pop():移除數(shù)組中的最后一個(gè)元素并返回該元素。如果該數(shù)組為空,那么將返回 undefined。
var a1 = [1,2,3,4];
var item = a1.pop();
alert(item); //結(jié)果:4
alert(a1);//結(jié)果:1,2,3
//4.push():將新元素添加(追加)到一個(gè)數(shù)組中,并返回?cái)?shù)組的新長(zhǎng)度值。push 方法將以新元素出現(xiàn)的順序添加這些元素。如果參數(shù)之一為數(shù)組,那么該數(shù)組將作為單個(gè)元素添加到數(shù)組中。如果要合并兩個(gè)或多個(gè)數(shù)組中的元素,請(qǐng)使用 concat 方法。
var a1 = [1,2,3,4];
a1.push(5);
a1.push("6");
alert(a1);//結(jié)果:1,2,3,4,5,6
//5.reverse():返回一個(gè)元素順序被反轉(zhuǎn)的 Array 對(duì)象。
var a1 = [1,2,3,4];
a1.reverse();
alert(a1);//結(jié)果:4,3,2,1
//6.shift():移除數(shù)組中的第一個(gè)元素并返回該元素。
var a1 = [1,2,3,4];
a1.shift();
alert(a1);//結(jié)果:2,3,4
//7.unshift():將指定的元素插入數(shù)組開始位置并返回該數(shù)組。
var a1 = [1,2,3,4];
a1.unshift(5);
alert(a1);//結(jié)果:5,1,2,3,4
//8.slice():返回一個(gè)數(shù)組的一段。a1.slice(start, [end]),slice 方法一直復(fù)制到 end 所指定的元素,但是不包括該元素。如果 start 為負(fù),將它作為 length + start處理,此處 length 為數(shù)組的長(zhǎng)度。如果 end 為負(fù),就將它作為 length + end 處理,此處 length 為數(shù)組的長(zhǎng)度。如果省略 end ,那么 slice 方法將一直復(fù)制到 arrayObj 的結(jié)尾。如果 end 出現(xiàn)在 start 之前,不復(fù)制任何元素到新數(shù)組中。
var a1 = [1,2,3,4];
var a2 = a1.slice(-1);
var a3 = a1.slice(0,-1);
var a4 = a1.slice(1);
alert(a2);//結(jié)果:4
alert(a3);//結(jié)果:1,2,3
alert(a4);//結(jié)果:2,3,4
//9.splice():從一個(gè)數(shù)組中移除一個(gè)或多個(gè)元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
//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);//結(jié)果:
alert(a3);//結(jié)果:2
alert(a1);//結(jié)果:1,5,4
//10.sort():返回一個(gè)元素已經(jīng)進(jìn)行了排序的 Array 對(duì)象。
var a1 = [2,3,1,4,"b","a"];
var a2 = a1.sort();
alert(a2);//結(jié)果:1,2,3,4,a,b
//11.toString():返回對(duì)象的字符串表示。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.toString();
alert(a2);//結(jié)果:1,2,3,4,b,a
//12.valueOf():返回指定對(duì)象的原始值。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.valueOf();
alert(a2);//結(jié)果:1,2,3,4,b,a
indexOf擴(kuò)展:
復(fù)制代碼 代碼如下:
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="測(cè)試獲取數(shù)組下標(biāo)" onclick="testIndexOf()" />
您可能感興趣的文章:
- JS Array對(duì)象入門分析
- javascript Array對(duì)象使用小結(jié)
- js對(duì)象之JS入門之Array對(duì)象操作小結(jié)
- JavaScript中的Array對(duì)象使用說(shuō)明
- js Array對(duì)象的擴(kuò)展函數(shù)代碼
- 以JSON形式將JS中Array對(duì)象數(shù)組傳至后臺(tái)的方法
- JavaScript Array對(duì)象擴(kuò)展indexOf()方法
- JavaScript數(shù)組Array對(duì)象增加和刪除元素方法總結(jié)
- javascript類型系統(tǒng) Array對(duì)象學(xué)習(xí)筆記
- JavaScript Array對(duì)象詳解
相關(guān)文章
小程序?qū)崿F(xiàn)五星點(diǎn)評(píng)效果
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)五星點(diǎn)評(píng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11JavaScript Math對(duì)象和調(diào)試程序的方法分析
這篇文章主要介紹了JavaScript Math對(duì)象和調(diào)試程序的方法,結(jié)合實(shí)例形式分析了javascript中Math對(duì)象生成隨機(jī)數(shù)以及使用alert()、console.log()函數(shù)進(jìn)行錯(cuò)誤調(diào)試相關(guān)操作技巧,需要的朋友可以參考下2019-05-05javascript+HTML5的Canvas實(shí)現(xiàn)Lab單車動(dòng)畫效果
這篇文章主要介紹了javascript+HTML5的Canvas實(shí)現(xiàn)Lab單車動(dòng)畫效果,涉及javascript使用Canvas配合數(shù)學(xué)運(yùn)算實(shí)現(xiàn)自行車動(dòng)畫效果,需要的朋友可以參考下2015-08-08prettier自動(dòng)格式化去換行的實(shí)現(xiàn)代碼
這篇文章主要介紹了prettier自動(dòng)格式化去換行的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08簡(jiǎn)單實(shí)現(xiàn)JS對(duì)dom操作封裝
這篇文章主要介紹了簡(jiǎn)單實(shí)現(xiàn)JS對(duì)dom操作封裝,需要的朋友可以參考下2015-12-12