溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript中數(shù)組對象的示例分析

發(fā)布時間:2022-03-25 10:06:22 來源:億速云 閱讀:150 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“JavaScript中數(shù)組對象的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“JavaScript中數(shù)組對象的示例分析”這篇文章吧。

數(shù)組對象

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

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

2、稀疏數(shù)組

稀疏數(shù)組是包含從0開始的不連續(xù)索引的數(shù)組。在稀疏數(shù)組中一般length屬性值比實際元素個數(shù)大(不常見)
舉例

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

數(shù)組對象屬性

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

1.length屬性:

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

2.prototype 屬性

prototype 屬性返回對象類型原型的引用。prototype 屬性是object共有的。
objectName.prototype
objectName 參數(shù)是object對象的名稱。
說明:用 prototype 屬性提供對象的類的一組基本功能。 對象的新實例“繼承”賦予該對象原型的操作。
對于數(shù)組對象,用以下例子說明prototype 屬性的用途。
給數(shù)組對象添加返回數(shù)組中最大元素值的方法。要完成這一點,聲明一個函數(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( );

3.constructor 屬性

constructor 屬性表示創(chuàng)建對象的函數(shù)。
object.constructor //object是對象或函數(shù)的名稱。
說明:constructor 屬性是所有具有prototype 的對象的成員。它們包括除 Global 和 Math對象以外的所有JScript固有對象。constructor屬性保存了對構(gòu)造特定對象實例的函數(shù)的引用。

例如:

x = new String("Hi");if (x.constructor == String) // 進行處理(條件為真)。//或function MyFunc {// 函數(shù)體。}y = new MyFunc;if (y.constructor == MyFunc) // 進行處理(條件為真)。

Array的對象方法
說明:部分是ECMAScript5的新特性(IE678不支持)

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

主要對一些新特性進行講解

concat
concat作用是拼接數(shù)組,需要注意的是也可以把一個數(shù)組元素作為拼接的元素,如果這樣的話,數(shù)組會被拉平,再和其它的元素拼接起來成為新的數(shù)組,但是不會被拉平兩次,concat不會修改原數(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可以取負數(shù),表示從a位置開始截取到b位置的一段數(shù)組,是一個左閉右開的區(qū)間,a和b可以取負數(shù),如果是負數(shù)代表倒數(shù)第a/b個元素

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)從左邊開始刪除a個元素
object.splice(a,b)從a位置開始截取其中的b個元素
object.splice(a,b,c,d)從a位置開始截取b個元素,并將c和d或者更多的元素插入原數(shù)組
需要注意的是splice會修改原數(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ù)組遍歷一遍。有三個參數(shù)分別是:數(shù)組元素,元素的索引,數(shù)組本身

var arr = [1, 2, 3, 4, 5];arr.forEach(function(x, index, a){//分別對應(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

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

[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是可選的,如果寫了參數(shù)0那第一次傳遞的兩個值就是0和1如果不寫第一次傳遞的就是數(shù)組的前兩個值,計算結(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

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


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

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


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

以上是“JavaScript中數(shù)組對象的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI