在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 淺談 JavaScript Array 對(duì)象
淺談 JavaScript 之事件綁定
淺談 javascript 中字符串 String 與數(shù)組 Array
淺談 javascript 中基本包裝類型
淺談 JavaScript Math 和 Number 對(duì)象
淺談 Javascript 的靜態(tài)屬性和原型屬性
淺談 JavaScript 中定義變量時(shí)有無 var 聲明的區(qū)別
淺談 JavaScript Array 對(duì)象
淺談 JavaScript 函數(shù)參數(shù)的可修改性問題
淺談 javascript 中的 instanceof 和 typeof
淺談 JavaScript 中 Date (日期對(duì)象),Math 對(duì)象
淺談 Javascript 執(zhí)行順序
淺談 javascript 函數(shù)屬性和方法
淺談 JavaScript 中面向?qū)ο蠹夹g(shù)的模擬
淺談 javascript 的原型繼承
淺談 javascript 事件取消和阻止冒泡
根據(jù)一段代碼淺談 Javascript 閉包
淺談 Javascript 面向?qū)ο缶幊?/span>
淺談 javascript 六種數(shù)據(jù)類型以及特殊注意點(diǎn)
淺談 Javascript 變量作用域問題
淺談 javascript 函數(shù)內(nèi)部屬性
淺談 javascript 中自定義模版
淺談 JavaScript 字符集
淺談 javascript 面向?qū)ο缶幊?/span>
淺談 JavaScript 框架分類
淺談 JavaScript 中的 Math.atan() 方法的使用
淺談 Javascript 數(shù)組與字典
淺談 JavaScript 數(shù)據(jù)類型及轉(zhuǎn)換
淺談 javascript 的調(diào)試
淺談 Javascript 嵌套函數(shù)及閉包
淺談 javascript 回調(diào)函數(shù)
淺談 JavaScript Date 日期和時(shí)間對(duì)象
淺談 Javascript 中的 Function 與 Object
淺談 JavaScript 數(shù)據(jù)類型
淺談 javascript 中 this 在事件中的應(yīng)用
淺談 javascript 中的閉包
淺談 javascript 函數(shù)劫持
淺談 Javascript 中深復(fù)制
淺談 JavaScript 函數(shù)節(jié)流
淺談 JavaScript 中的 String 對(duì)象常用方法
淺談 JavaScript 事件的屬性列表
淺談 JavaScript 函數(shù)與棧
淺談 JavaScript 的事件
淺談 javascript 中的作用域
淺談 JavaScript 的執(zhí)行效率
淺談 Javascript 事件模擬
淺談 JavaScript function 函數(shù)種類
淺談 javascript 歸并方法
淺談 javascript 迭代方法
淺談 JavaScript 編程語言的編碼規(guī)范
淺談 JavaScript 實(shí)現(xiàn)面向?qū)ο笾械念?/span>
淺談 Javascript 鼠標(biāo)和滾輪事件
淺談 Javascript Base64 加密解密
淺談 Javascript 中勻速運(yùn)動(dòng)的停止條件
淺談 javascript 實(shí)現(xiàn)八大排序
淺談 javascript 的分號(hào)的使用
淺談 javascript 中 createElement 事件
淺談 javascript 的數(shù)據(jù)類型檢測
淺談 javascript 對(duì)象模型和 function 對(duì)象
淺談 Javascript 如何實(shí)現(xiàn)勻速運(yùn)動(dòng)
淺談 JavaScript 字符串與數(shù)組
淺談 javascript 面向?qū)ο蟪绦蛟O(shè)計(jì)
淺談 Javascript 事件處理程序的幾種方式

淺談 JavaScript Array 對(duì)象

Array 數(shù)組

介紹

數(shù)組是值的有序集合。每個(gè)值叫做一個(gè)元素,而每個(gè)元素在數(shù)組中有一個(gè)位置,以數(shù)字表示,稱為索引。JavaScript 數(shù)組是無類型:數(shù)組元素可以是任意類型,并且同一個(gè)數(shù)組中的不同元素也可能有不同的類型。 --《 JavaScript 權(quán)威指南(第六版)》

定義

[js] view plaincopy
var names = new Array("張三", "李四", "王五");  

//或者  

var names = ["張三", "李四", "王五"];  

屬性

length:表示數(shù)組內(nèi)的元素長度。

實(shí)例方法

常用方法:

1) unshift() :在數(shù)組頭部插入元素

2) shift() :移除并返回?cái)?shù)組的第一個(gè)元素

3) push() :在數(shù)組尾部插入元素

4) pop() :移除并返回?cái)?shù)組的最后一個(gè)元素

concat() :把元素銜接到數(shù)組中。不會(huì)修改原先的 array,返回新的數(shù)組

參數(shù):

①value1,value2.....valueN :任意多個(gè)值

返回值:

{Array} 一個(gè)新的數(shù)組,包含原先的 Array 和新加入的元素。

示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c'];  

var demoArray2 = demoArray.concat('e');  

console.log(demoArray); // => demoArray:['a','b','c']  原數(shù)組不發(fā)生變更  

console.log(demoArray2); // => ['a','b','c','e']  

every() :依次遍歷元素,判斷每個(gè)元素是否都為true

參數(shù):

①function(value,index,self){} :每個(gè)元素都會(huì)使用此函數(shù)判斷是否為 true,當(dāng)判斷到一個(gè)為 false 時(shí),立即結(jié)束遍歷。

  value :數(shù)組遍歷的元素

  index :元素序號(hào)

  self :Array本身

返回值:

{Boolean} :只有每個(gè)元素都為 true 才返回 true;只要一個(gè)為 false,就返回 false。

示例:

[js] view plaincopy
var demoArray = [1, 2, 3];  

var rs = demoArray.every(function (value, index, self) {  

    return value > 0;  

});  

console.log(rs); // => true  

filter() :依次遍歷元素,返回包含符合條件元素的新的數(shù)組。

參數(shù):

①function(value,index,self){} :每個(gè)元素依次調(diào)用此函數(shù),返回包含符合條件元素的新的數(shù)組。

  value :數(shù)組遍歷的元素

  index :元素序號(hào)

  self :Array本身

返回值:

{Array} 一個(gè)包含符合條件元素的新的數(shù)組

示例:

[js] view plaincopy
var demoArray = [1, 2, 3];  

var rs = demoArray.filter(function (value, index, self) {  

    return value > 0;  

});  

console.log(rs); // => [1, 2, 3]  

forEach() :依次遍歷元素,執(zhí)行指定的函數(shù);無返回值。

參數(shù):

①function(value,index,self){} :每個(gè)元素依次調(diào)用此函數(shù)

  value :數(shù)組遍歷的元素

  index :元素序號(hào)

  self :Array本身

返回值:無

示例:

[js] view plaincopy
var demoArray = [1, 2, 3];  

demoArray.forEach(function (value, index, self) {  

    console.log(value); // => 依次輸出:1  2  3  

});  

indexOf() :在數(shù)組中查找匹配元素。若不存在匹配的元素時(shí),就返回-1。查找的時(shí)候使用"==="運(yùn)算符,所以要區(qū)分1和'1'

參數(shù):

①value :要在數(shù)組中查找的值。

②start :開始查找的序號(hào)位置,如果省略,則為0.

返回值:

{Int} :返回?cái)?shù)組中第一個(gè)匹配 value 的序號(hào),若不存在,返回-1

示例:

[js] view plaincopy
['a', 'b', 'c'].indexOf('a'); // =>0  

['a', 'b', 'c'].indexOf('a', 1); // =>-1  

['a', 'b', 'c'].indexOf('d'); // =>-1  

[1, 2, 3].indexOf('1'); // => -1 :采用的'==='匹配方式  

join() :將數(shù)組中所有元素通過一個(gè)分隔符拼接為一個(gè)字符串。

參數(shù):

①sparator {String}:各元素之間的分隔符,如果省略,默認(rèn)以因?yàn)橛⑽亩禾?hào)','分隔。

返回值:

{String} :各元素以 sparator 為分隔符,拼接而成的一個(gè)字符串。

示例:

[js] view plaincopy
['a', 'b', 'c'].join(); // => 'a,b,c'  

['a', 'b', 'c'].join('-'); // => 'a-b-c'  

lastIndexOf :在數(shù)組中反向查找匹配元素。若不存在匹配的元素時(shí),就返回-1。查找的時(shí)候使用"==="運(yùn)算符,所以要區(qū)分1和'1'

參數(shù):

①value :要在數(shù)組中查找的值。

②start :開始查找的序號(hào)位置,如果省略,則從最后一個(gè)元素開始查找。

返回值:

{Int} :從右到左開始查找數(shù)組中第一個(gè)匹配 value 的序號(hào),若不存在,返回-1

示例:

[js] view plaincopy
['a', 'b', 'c'].lastIndexOf('a'); // => 0  

['a', 'b', 'c'].lastIndexOf('a', 1); // => 0  

['a', 'b', 'c'].lastIndexOf('d'); // => -1  

[1, 2, 3].lastIndexOf('1'); // => -1 :采用的'==='匹配方式  

map() :依次遍歷并計(jì)算每個(gè)元素,返回計(jì)算好的元素的數(shù)組

參數(shù):

①function(value,index,self){} :每個(gè)元素依次調(diào)用此函數(shù),返回計(jì)算好的元素

  value :數(shù)組遍歷的元素

  index :元素序號(hào)

  self :Array本身

返回值:

{Array} 一個(gè)包含就算好的元素的新的數(shù)組

示例:

[js] view plaincopy
[1, 2, 3].map(function (value, index, self) {  

    return value * 2;  

}); // => [2, 4, 6]  

pop() :移除并返回?cái)?shù)組的最后一個(gè)元素

參數(shù):無 返回值:

{Object} 數(shù)組的最后一個(gè)元素;若數(shù)組為空,返回 undefined

示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c'];  

demoArray.pop(); // => c  

demoArray.pop(); // => b  

demoArray.pop(); // => a  

demoArray.pop(); // => undefined  

push() :把元素添加到數(shù)組尾部

參數(shù):

①value1,value2.....valueN :任意多個(gè)值添加到數(shù)組尾部

返回值:

{int} 數(shù)組新的長度

示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c'];  

demoArray.push('d'); // => 4, demoArray : ['a', 'b', 'c', 'd']  

demoArray.push('e', 'f'); // => 6, demoArray :['a', 'b', 'c', 'd', 'e', 'f']  

console.log(demoArray); // => ['a', 'b', 'c', 'd', 'e', 'f']  

reverse() :反轉(zhuǎn)數(shù)組元素的順序。

參數(shù):無 返回值:無(在原數(shù)組內(nèi)進(jìn)行元素順序反轉(zhuǎn))。

示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c', 'd', 'e'];  

demoArray.reverse();  

console.log(demoArray); // => ["e", "d", "c", "b", "a"]  

shift() :移除并返回?cái)?shù)組的第一個(gè)元素

參數(shù):無 返回值:

{Object} 數(shù)組的第一個(gè)元素;若數(shù)組為空,返回 undefined。

示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c'];  

demoArray.shift(); // => a  

demoArray.shift(); // => b  

demoArray.shift(); // => c  

demoArray.shift(); // => undefined  

slice(startIndex,endIndex) :返回?cái)?shù)組的一部分。

參數(shù):

①startIndex :開始處的序號(hào);若為負(fù)數(shù),表示從尾部開始計(jì)算,-1代表最后一個(gè)元素,-2倒數(shù)第二個(gè),依此類推。

②endIndex : 結(jié)束處的元素后一個(gè)序號(hào),沒指定就是結(jié)尾。截取的元素不包含此處序號(hào)的元素,結(jié)尾為此處序號(hào)的前一個(gè)元素。

返回值:

{Array} 一個(gè)新的數(shù)組,包含從startIndex到endIndex前一個(gè)元素的所有元素。

示例:

[js] view plaincopy
[1, 2, 3, 4, 5, 6].slice(); // => [1, 2, 3, 4, 5, 6]  

[1, 2, 3, 4, 5, 6].slice(1); // => [2, 3, 4, 5, 6] :從序號(hào)1開始截取  

[1, 2, 3, 4, 5, 6].slice(0, 4); // => [1, 2, 3, 4] :截取序號(hào)0到序號(hào)3(序號(hào)4的前一個(gè))的元素  

[1, 2, 3, 4, 5, 6].slice(-2); // => [5, 6] :截取后面的2個(gè)元素  

sort(opt_orderFunc) :按一定的規(guī)則進(jìn)行排序

參數(shù):

①opt_orderFunc(v1,v2) {Function}:可選的排序規(guī)則函數(shù)。若省略,將按照元素的字母進(jìn)行從小到大排序。

  v1 :遍歷時(shí)前面的元素。

  v2 :遍歷時(shí)后面的元素。

排序規(guī)則:

比較v1和v2,返回一個(gè)數(shù)字來表示v1和v2的排序規(guī)則:

小于0 :v1小于v2,v1排在v2的前面。

等于0 :v1等于v2,v1排在v2的前面。

大于0 :v1大于v2,v1排在v2的后面。

返回值:無(在原先數(shù)組里進(jìn)行排序操作)。

示例:

[js] view plaincopy
[1, 3, 5, 2, 4, 11, 22].sort(); // => [1, 11, 2, 22, 3, 4, 5] :這里都元素都被轉(zhuǎn)換為字符,11的字符在2前  

[1, 3, 5, 2, 4, 11, 22].sort(function (v1, v2) {  

    return v1 - v2;  

}); // => [1, 2, 3, 4, 5, 11, 22] :從小到大排序  

[1, 3, 5, 2, 4, 11, 22].sort(function (v1, v2) {  

    return -(v1 - v2); //取反,就可以轉(zhuǎn)換為 從大到小  

}); // => [22, 11, 5, 4, 3, 2, 1]  

splice() :插入、刪除數(shù)組元素

參數(shù):

①start {int} :開始插入、刪除或替換的起始序號(hào)。

②deleteCount {int} :要?jiǎng)h除元素的個(gè)數(shù),從start處開始計(jì)算。

③value1,value2 ... valueN {Object} :可選參數(shù),表示要插入的元素,從start處開始插入。若②參不為0,那么先執(zhí)行刪除操作,再執(zhí)行插入操作。

返回值:

{Array} 返回一個(gè)包含刪除元素的新的數(shù)組。若②參為0,表示沒元素刪除,返回一個(gè)空數(shù)組。

示例:

[js] view plaincopy
// 1.刪除  

var demoArray = ['a', 'b', 'c', 'd', 'e'];  

var demoArray2 = demoArray.splice(0, 2); // 刪除從序號(hào)從0開始的2個(gè)元素,返回包含刪除元素的數(shù)組:['a', 'b']  

console.log(demoArray2); // => ['a', 'b']  

console.log(demoArray); // => ['c', 'd', 'e']  

// 2.插入  

var demoArray = ['a', 'b', 'c', 'd', 'e'];  

var demoArray2 = demoArray.splice(0, 0, '1', '2', '3'); // ②參為0,返回空數(shù)組  

console.log(demoArray2); // => [ ]  

console.log(demoArray); // => ['1', '2', '3', 'a', 'b', 'c', 'd', 'e']  

// 3.先刪除再插入  

var demoArray = ['a', 'b', 'c', 'd', 'e'];  

// 當(dāng)②參不為0,那么先執(zhí)行刪除操作(刪除序號(hào)從0開始的4個(gè)元素,返回包含被刪除元素的數(shù)組),再執(zhí)行插入操作  

var demoArray2 = demoArray.splice(0, 4, '1', '2', '3');  

console.log(demoArray2); // => ['a', 'b', 'c', 'd']   

console.log(demoArray); // => ['1', '2', '3', 'a', 'b', 'c', 'd', 'e']  

toString() :將數(shù)組中所有元素通過一個(gè)英文逗號(hào)','拼接為一個(gè)字符串。

參數(shù):無 返回值:

{String} 數(shù)組中所有元素通過一個(gè)英文逗號(hào)','拼接為一個(gè)字符串,并返回。與調(diào)用無參join()方法一樣。

示例:

[js] view plaincopy
[1, 2, 3, 4, 5].toString(); // => '1,2,3,4,5'  

['a', 'b', 'c', 'd', 'e'].toString(); // => 'a,b,c,d,e'  

unshift() :在數(shù)組頭部插入元素

參數(shù): ①value1,value2.....valueN :任意多個(gè)值添加到數(shù)組頭部

返回值:

{int} 數(shù)組新的長度

示例:

[js] view plaincopy
var demoArray = [];  

demoArray.unshift('a'); // => demoArray:['a']  

demoArray.unshift('b'); // => demoArray:['b', 'a']  

demoArray.unshift('c'); // => demoArray:['c', 'b', 'a']  

demoArray.unshift('d'); // => demoArray:['d', 'c', 'b', 'a']  

demoArray.unshift('e'); // => demoArray:['e', 'd', 'c', 'b', 'a']  

靜態(tài)方法

Array.isArray() :判斷對(duì)象是否為數(shù)組

參數(shù):

①value {Object}:任意對(duì)象

返回值:

{Boolean} 返回判斷結(jié)果。當(dāng)為 true 時(shí),表示對(duì)象為數(shù)組;為 false 時(shí),表示對(duì)象不是數(shù)組

示例:

[js] view plaincopy
Array.isArray([]); // => true  

Array.isArray(['a', 'b', 'c']); // => true  

Array.isArray('a'); // => false  

Array.isArray('[1, 2, 3]'); // => false  

實(shí)際操作

索引

說明:每個(gè)元素在數(shù)組中有一個(gè)位置,以數(shù)字表示,稱為索引。索引是從 0 開始計(jì),即第一個(gè)元素的索引為 0,第二個(gè)元素的索引為 1,依此類推; 當(dāng)獲取一個(gè)數(shù)組不存在的索引時(shí),返回 undefined。

示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c', 'd', 'e'];  

demoArray[0]; // => 獲取第一個(gè)元素:'a'  

demoArray[0] = 1;  // 設(shè)置第一個(gè)元素為 1  

console.log(demoArray); // => demoArray:[1, 'b', 'c', 'd', 'e']  

console.log(demoArray[9]); // => undefined :當(dāng)獲取的索引不存在時(shí),返回 undefined  

for 語句

說明:可以通過 for 語句逐個(gè)遍歷數(shù)組 示例:

[js] view plaincopy
var demoArray = ['a', 'b', 'c', 'd', 'e'];  

for (var i = 0, length = demoArray.length; i < length; i++) {  

    console.log(demoArray[i]); // => 逐個(gè)輸出數(shù)組內(nèi)的元素  

}  

淺度復(fù)制

說明:Array 類型是一種引用類型;當(dāng)數(shù)組a復(fù)制給數(shù)組b時(shí),對(duì)數(shù)組 b 進(jìn)行元素修改,數(shù)組 a 也會(huì)發(fā)生修改。 示例:

[js] view plaincopy
var demoArrayA = ['a', 'b', 'c', 'd', 'e'];  

var demoArrayB = demoArrayA; // 把數(shù)組A 賦值給數(shù)組B  

demoArrayB[0] = 1; // 對(duì)數(shù)組B 的元素進(jìn)行修改  

console.log(demoArrayA); // => [1, 'b', 'c', 'd', 'e']:數(shù)組A 的元素也發(fā)生了變更  

深度復(fù)制

說明:使用 concat() 方法,返回新的數(shù)組;防止淺度復(fù)制的情況發(fā)生,對(duì)數(shù)組 b 進(jìn)行元素修改操作,數(shù)組a不發(fā)生變更。 示例:

[js] view plaincopy
var demoArrayA = ['a', 'b', 'c', 'd', 'e'];  

var demoArrayB = demoArrayA.concat(); // 使用concat()方法,返回新的數(shù)組  

demoArrayB[0] = 1; // 對(duì)數(shù)組B 的元素進(jìn)行修改  

console.log(demoArrayA); // => ['a', 'b', 'c', 'd', 'e']:數(shù)組A 的元素沒變更  

console.log(demoArrayB); // => [  1, 'b', 'c', 'd', 'e']:數(shù)組B 的元素發(fā)生了變更