日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

JavaScript中數(shù)組對(duì)象詳解

瀏覽:71日期:2023-11-14 11:13:46

Array對(duì)象即數(shù)組對(duì)象用于在單個(gè)變量中存儲(chǔ)多個(gè)值,JS的數(shù)組是弱類型的,所以允許數(shù)組中含有不同類型的元素,數(shù)組元素甚至可以是對(duì)象或者其他數(shù)組。

創(chuàng)建數(shù)組的語(yǔ)法

1、Array構(gòu)造器

1、var list=new Array();2、var list=new Array(size);3、var list=new Array(element0,element1,...elementn);

2、字面量的方式

var Array[element0,element1,...elementn];

舉例子

var list=new Array(1,true,null,undefined,{x:1},[1,2,3]);

var list[1,true,null,undefined,{x:1},[1,2,3]]; 數(shù)組的分類

1、二維數(shù)組,二維數(shù)組的本質(zhì)是數(shù)組中的元素又是數(shù)組。

var arr = [[1,2],[a,b]];alert(arr[1][0]); //a 第2列第1行所在的元素

2、稀疏數(shù)組

稀疏數(shù)組是包含從0開(kāi)始的不連續(xù)索引的數(shù)組。在稀疏數(shù)組中一般length屬性值比實(shí)際元素個(gè)數(shù)大(不常見(jiàn))

舉例

var a=['a',,'b',,,,'c',,];

數(shù)組對(duì)象屬性 屬性 作用length 屬性 表示數(shù)組的長(zhǎng)度,即其中元素的個(gè)數(shù)prototype 屬性 返回對(duì)象類型原型的引用constructor 屬性 表示創(chuàng)建對(duì)象的函數(shù)

1、length 屬性

通過(guò)一些操作來(lái)講解length屬性

var arr=[1,2,3,4,5,6,7,8,9,10]; //定義了一個(gè)包含10個(gè)數(shù)字的數(shù)組。

數(shù)組的長(zhǎng)度屬性是可變的

alert(arr.length); //顯示數(shù)組的長(zhǎng)度10arr.length=15; //增大數(shù)組的長(zhǎng)度,length屬性是可變的alert(arr.length); //顯示數(shù)組的長(zhǎng)度已經(jīng)變?yōu)?5

訪問(wèn)數(shù)組元素

alert(arr[3]); //顯示第4個(gè)元素的值,為4

減小數(shù)組長(zhǎng)度

arr.length=2; //將數(shù)組的長(zhǎng)度減少到2,數(shù)組中的元素只剩下索引值小于2的元素alert(arr[9]); //這時(shí)候顯示第10個(gè)元素已經(jīng)變?yōu)?undefined'因?yàn)樗饕荡笥诘扔?的元素都被拋棄了

恢復(fù)數(shù)組長(zhǎng)度

arr.length=10; //將數(shù)組長(zhǎng)度恢復(fù)為10alert(arr[9]); //長(zhǎng)度恢復(fù)之后已經(jīng)拋棄的元素卻無(wú)法收回,顯示'undefined'

2、prototype 屬性

prototype 屬性返回對(duì)象類型原型的引用。 prototype 屬性是 object 共有的。

objectName.prototype

objectName 參數(shù)是 object 對(duì)象的名稱。

說(shuō)明:用 prototype 屬性提供對(duì)象的類的一組基本功能。 對(duì)象的新實(shí)例“繼承”賦予該對(duì)象原型的操作。

對(duì)于數(shù)組對(duì)象,用以下例子說(shuō)明prototype 屬性的用途。

給數(shù)組對(duì)象添加返回?cái)?shù)組中最大元素值的方法。要完成這一點(diǎn),聲明一個(gè)函數(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、constructor 屬性

constructor 屬性表示創(chuàng)建對(duì)象的函數(shù)。

object.constructor //object 是對(duì)象或函數(shù)的名稱。

說(shuō)明: 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)行處理(條件為真)。

對(duì)于數(shù)組來(lái)說(shuō):

y = new Array(); Array的對(duì)象方法

說(shuō)明:部分是ECMAScript5的新特性(IE678不支持)

方法 作用concat() 連接兩個(gè)或者更多的數(shù)組,并返回結(jié)果join() 將數(shù)組的元素組起一個(gè)字符串pop() 刪除并返回?cái)?shù)組的最后一個(gè)元素push() 數(shù)組末尾添加一個(gè)或者多個(gè)元素,返回新的長(zhǎng)度reverse 顛倒數(shù)組中元素的順序shift() 刪除并返回?cái)?shù)組的第一個(gè)元素slice() 從某個(gè)已有的數(shù)組返回選定的元素sort() 對(duì)數(shù)組元素排序splice() 刪除元素,并向數(shù)組添加新元素toSource() 返回該對(duì)象的源代碼toString() 把數(shù)組轉(zhuǎn)化為字符串并返回結(jié)果toLocalString() 把數(shù)組轉(zhuǎn)化為本地元素并返回結(jié)果unshift 向數(shù)組開(kāi)頭添加一個(gè)或者更多的元素,并返回新的長(zhǎng)度valueof() 返回?cái)?shù)組對(duì)象的原始值forEach() 遍歷數(shù)組對(duì)象map() 對(duì)數(shù)組做一些映射filter() 過(guò)濾every() 檢查判斷some() 檢查判斷reduce() 兩兩執(zhí)行一定的操作reduceRight() 從右到左執(zhí)行操作indexOf() 數(shù)組檢索查找某個(gè)元素Array.isArray([]) 判斷是否是數(shù)組

主要對(duì)一些新特性進(jìn)行講解

concat

concat作用是拼接數(shù)組,需要注意的是也可以把一個(gè)數(shù)組元素作為拼接的元素,如果這樣的話,數(shù)組會(huì)被拉平,再和其它的元素拼接起來(lái)成為新的數(shù)組,但是不會(huì)被拉平兩次,concat不會(huì)修改原數(shù)組。

例如

var arr=[1,2,3,4,5];arr.concat([10,11],13);//[1,2,3,4,5,10,11,13]arr.concat([1,[2,3]]);//[1,2,3,4,5,1,[1,3]]

slice

slice(a,b)a和b可以取負(fù)數(shù),表示從a位置開(kāi)始截取到b位置的一段數(shù)組,是一個(gè)左閉右開(kāi)的區(qū)間,a和b可以取負(fù)數(shù),如果是負(fù)數(shù)代表倒數(shù)第a/b個(gè)元素

var arr=[1,2,3,4,5];arr.slice(1,3);//[2,3]arr.slice(1);//[2,3,4,5]arr.slice(1,-1);//[2,3,4]arr.slice(-4,-3);//[2]

splice

splice刪除元素并向數(shù)組添加新元素

object.splice(a) 從左邊開(kāi)始刪除a個(gè)元素

object.splice(a,b) 從a位置開(kāi)始截取其中的b個(gè)元素

object.splice(a,b,c,d) 從a位置開(kāi)始截取b個(gè)元素,并將c和d或者更多的元素插入原數(shù)組

需要注意的是splice會(huì)修改原數(shù)組

var arr=[1,2,3,4,5];arr.splice(2);//[3,4,5]arr;//[1,2];原數(shù)組被修改了var arr=[1,2,3,4,5];arr.splice(2,2);//[3,4]arr;//[1,2,5];var arr=[1,2,3,4,5];arr.splice(1,1,‘a(chǎn)’,‘b’);//[2]arr;//[1,'a','b',3,4,5];

foreach

foreach()函數(shù)從頭到尾把數(shù)組遍歷一遍。有三個(gè)參數(shù)分別是:數(shù)組元素,元素的索引,數(shù)組本身

var arr = [1, 2, 3, 4, 5];arr.forEach(function(x, index, a){//分別對(duì)應(yīng):數(shù)組元素,元素的索引,數(shù)組本身 console.log(x + ’|’ + index + ’|’ + (a === arr));});// 1|0|true// 2|1|true// 3|2|true// 4|3|true// 5|4|true

說(shuō)明:如果只有一個(gè)參數(shù)那這個(gè)參數(shù)代表數(shù)組元素,也就是數(shù)組的值,請(qǐng)看例2。

例2var data=[1,2,3,4,5,6];var sum=0;data.forEach(function(v){//其中的v就是數(shù)組的值 123456sum+=v;})document.write(sum+'<br>');//打印出來(lái)是21

map

map 對(duì)數(shù)組做一些映射,map() 方法返回一個(gè)由原數(shù)組中的每個(gè)元素調(diào)用一個(gè)指定方法后的返回值組成的新數(shù)組,它與forEach的區(qū)別是forEach為數(shù)組中的每個(gè)元素執(zhí)行一次回調(diào)函數(shù)。

var arr = [1, 2, 3];arr.map(function(x) { return x + 10;}); // [11, 12, 13]arr; // [1, 2, 3]

filter

filter 過(guò)濾掉某些元素,和map有點(diǎn)類似,Array的filter也接收一個(gè)函數(shù)。但是和map不同的是, filter把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是 true 還是false決定保留還是丟棄該元素,也就是過(guò)濾掉不符合要求的某些元素。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];arr.filter(function(x, index) { return index % 3 === 0 || x >= 8;}); // returns [1, 4, 7, 8, 9, 10]arr; // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

every()與some()

every()與some()方法都是JS中數(shù)組的迭代方法。every()是對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)每一項(xiàng)返回true,則返回true。some()是對(duì)數(shù)組中每一項(xiàng)運(yùn)行指定函數(shù),如果該函數(shù)對(duì)任一項(xiàng)返回true,則返回true。

總結(jié)就是every()當(dāng)每個(gè)元素都符合條件的時(shí)候返回true,而some()是任一項(xiàng)滿足條件就返回true

例1 every()var arr = [1, 2, 3, 4, 5];arr.every(function(x) { return x < 10;}); // truearr.every(function(x) { return x < 3;}); // false

some只需要有一個(gè)符合的就行

例2 somevar arr = [1, 2, 3, 4, 5];arr.some(function(x) { return x === 3;}); // truearr.some(function(x) { return x === 100;}); // false

reduce()

Array的reduce()把一個(gè)函數(shù)作用在這個(gè)Array的[x1, x2, x3...]上,這個(gè)函數(shù)必須接收兩個(gè)參數(shù),reduce()把結(jié)果繼續(xù)和序列的下一個(gè)元素做累積計(jì)算,其效果就是:

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

var arr = [1, 2, 3];var sum = arr.reduce(function(x, y) { return x + y}, 0); //參數(shù) 0是可選的,如果寫(xiě)了參數(shù)0那第一次傳遞的兩個(gè)值就是0和1如果不寫(xiě)第一次傳遞的就是數(shù)組的前兩個(gè)值,計(jì)算結(jié)果是6arr; //[1, 2, 3]arr = [3, 9, 6];var max = arr.reduce(function(x, y) { console.log(x + '|' + y); return x > y ? x : y;});// 3|9// 9|6max; // 9

reduceRight

和reduce一樣只不過(guò)reduceRight 變成了從右到左兩兩執(zhí)行某些操作

max = arr.reduceRight(function(x, y) { console.log(x + '|' + y); return x > y ? x : y;});// 6|9// 9|3max; // 9

indexOf()

indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置,indexOf(a,b)表示查找a元素,從b位置開(kāi)始;lastindexOf表示從右向左找。當(dāng)b為負(fù)數(shù)的時(shí)候表示從倒數(shù)第幾個(gè)元素開(kāi)始找,請(qǐng)看例子。

var arr = [1, 2, 3, 2, 1];arr.indexOf(2); // 1arr.indexOf(99); // -1表示沒(méi)有這個(gè)元素arr.indexOf(1, 1); // 4arr.indexOf(1, -3); // 4查找1從倒數(shù)第3個(gè)元素開(kāi)始arr.indexOf(2, -1); // -1查找2從倒數(shù)第1個(gè)元素開(kāi)始arr.lastIndexOf(2); // 3從右邊開(kāi)始找第一次出現(xiàn)2的位置arr.lastIndexOf(2, -2); // 3從右邊的倒數(shù)第二個(gè)開(kāi)始找2出現(xiàn)的位置arr.lastIndexOf(2, -3); // 1

isArray

isArray用來(lái)判斷是否是數(shù)組,但是isArray是Array構(gòu)造器對(duì)象上的屬性,所以不能直接用isArray,必須要寫(xiě)成Array.isArray([]),但是可以其它的判斷方法直接判斷

[]instanceof Array;//true({}).toString.apply([])===’[object Array]’;//true[].construcror===Array;//true

數(shù)組和一般對(duì)象的比較

數(shù)組 / 一般對(duì)象相同點(diǎn) 都可以繼承,對(duì)象不一定是數(shù)組,都可以當(dāng)做對(duì)象添加屬性不同點(diǎn) 數(shù)組自動(dòng)更新length按索引訪問(wèn)數(shù)組比訪問(wèn)一般對(duì)象屬性明顯迅速。數(shù)組對(duì)象繼承Array.prototype上的大量數(shù)組操作方法

數(shù)組和字符串的比較

數(shù)組 /字符串相同點(diǎn) 字符串是數(shù)組的一種不同點(diǎn) 字符串是不可變的數(shù)組,字符串沒(méi)有數(shù)組的方法

來(lái)自:http://www.jianshu.com/p/fd8c73d2cf2c

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品社区| 精品伊人久久久| 欧美天堂在线| 日本不卡的三区四区五区| 午夜性色一区二区三区免费视频| 丝袜a∨在线一区二区三区不卡| 亚洲欧美日韩在线观看a三区| 蜜桃tv一区二区三区| 99精品在线免费在线观看| 久久中文亚洲字幕| 亚洲免费精品| 亚洲麻豆一区| 日韩国产欧美一区二区三区| 国产精品一页| 日韩av二区| 日韩在线第七页| 999久久久精品国产| 中国字幕a在线看韩国电影| 99精品美女| 亚洲欧美成人综合| 日韩av网站在线观看| 国产精品nxnn| av免费不卡国产观看| 亚洲午夜在线| 亚洲精选91| 精品视频国产| 蜜桃成人av| 欧美一区二区三区久久| 欧美成人精品一级| 丝袜av一区| 亚洲精品精选| 精品一区视频| 久久人人88| 视频一区免费在线观看| 欧美日本三区| 亚洲天堂av影院| 美女黄网久久| 国产精品成人**免费视频| 电影亚洲精品噜噜在线观看| 男女精品网站| 麻豆精品一区二区综合av| 丝袜av一区| 日韩高清在线不卡| 激情久久一区二区| 亚洲精品网址| 国产日韩亚洲| 欧美一区二区三区激情视频| 欧美一区=区| 国产欧美自拍| 91精品婷婷色在线观看| 日韩一区二区三免费高清在线观看| 久久99精品久久久久久园产越南| 99久久九九| 国产一级成人av| 欧美一区二区三区激情视频| 国产欧美久久一区二区三区| 九一精品国产| 免费精品一区| 亚洲综合电影一区二区三区| 国产精品免费99久久久| 黄色在线一区| 国产精品99视频| 视频一区在线视频| 日韩国产一区二区三区| 日韩国产在线一| 樱桃成人精品视频在线播放| 欧美激情视频一区二区三区免费 | 国产精品久久久久久久久免费高清| 久久国产日本精品| 四虎在线精品| 久久精品国产大片免费观看| 国产精品一区二区99| 国产精品日本| se01亚洲视频| 久久97久久97精品免视看秋霞| 免费黄网站欧美| 日韩精品一区二区三区免费观影| 欧美日韩1区| 香蕉久久夜色精品国产| 成人欧美一区二区三区的电影| 日韩精选在线| 国产精品婷婷| 日韩精品网站| 成人午夜亚洲| 日韩精品中文字幕吗一区二区| 九九久久电影| 在线观看精品| 精品视频在线观看网站| 日韩成人午夜精品| 免费中文字幕日韩欧美| 久久天堂成人| 国产精品久久久久蜜臀| 日韩精品久久理论片| 在线视频精品| 久久网站免费观看| 日韩久久精品网| 成人精品动漫一区二区三区| 欧美久久亚洲| 婷婷久久免费视频| 国产一区日韩一区| 成人精品天堂一区二区三区| 色爱综合网欧美| 国产精品久久| 青青草国产成人99久久| 男女性色大片免费观看一区二区| 亚洲第一精品影视| 久久久亚洲一区| 国产色播av在线| 欧美xxxx中国| 91亚洲人成网污www| 精品一区二区三区中文字幕视频 | 久久精品123| 日韩免费小视频| 97精品国产| 久久影院午夜精品| 成人一区而且| 国产一区二区三区不卡av| 精品精品国产三级a∨在线| 国产精品视频一区二区三区 | 欧美专区一区| 久久国产欧美日韩精品| 欧美天堂一区二区| 国产精品久av福利在线观看| 亚洲一级淫片| 中文字幕日韩亚洲| 天堂久久av| 日本三级亚洲精品| 国产精品一卡| 精品一区视频| 日韩伦理在线一区| 久久久9色精品国产一区二区三区| 日韩免费福利视频| 欧美~级网站不卡| 日韩一级欧洲| 日韩中文字幕一区二区三区| 亚洲天堂日韩在线| 日韩精品免费一区二区夜夜嗨| 国产一卡不卡| 国产日韩欧美三级| 国产精品va视频| 国产精品国产三级国产在线观看| 免费观看亚洲| 婷婷综合亚洲| 亚洲精品自拍| 国产欧美91| 日韩免费福利视频| 亚洲欧美日韩精品一区二区| 日本麻豆一区二区三区视频| 国产精品一区二区三区四区在线观看 | 成人日韩精品| 在线综合亚洲| 日韩**一区毛片| 欧美aa在线视频| 午夜精品成人av| 在线综合亚洲| 欧美日韩xxxx| 波多野结衣久久精品| 最新亚洲一区| 国产精品亚洲一区二区在线观看| 成人午夜在线| 午夜日韩av| 国产日产精品_国产精品毛片| 水蜜桃精品av一区二区| 精品日韩毛片| 欧美专区一区| 久久精品91| 亚洲精品激情| 久久女人天堂| 欧美大黑bbbbbbbbb在线| 亚洲ab电影| 粉嫩av一区二区三区四区五区 | 日韩精品欧美大片| 国产精品久久久久蜜臀| 在线亚洲国产精品网站| 国产精品视频首页| 国产综合亚洲精品一区二| 日本不卡视频一二三区| 老司机精品视频在线播放| 国产在线不卡| 久久激情综合网| 亚洲四虎影院| 日本成人中文字幕在线视频| 日韩在线高清| 日本99精品| 日韩大片在线| 欧美久久香蕉| 蜜桃视频欧美| 麻豆精品国产91久久久久久| 在线成人直播| 精品日韩一区| 亚洲一二av| 欧美日韩尤物久久| 日韩国产高清在线| 亚洲高清影视| 欧美成a人片免费观看久久五月天| 9国产精品视频| 韩日一区二区| 日本va欧美va精品| 伊人影院久久| 老牛国内精品亚洲成av人片|