中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

JavaScript中數組對象的示例分析

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

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

數組對象

數組的分類**
1、二維數組,二維數組的本質是數組中的元素又是數組。

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

2、稀疏數組

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

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

數組對象屬性

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

1.length屬性:

alert(arr.length); //顯示數組的長度10arr.length=15; //增大數組的長度,length屬性是可變的alert(arr.length); //顯示數組的長度已經變為15

2.prototype 屬性

prototype 屬性返回對象類型原型的引用。prototype 屬性是object共有的。
objectName.prototype
objectName 參數是object對象的名稱。
說明:用 prototype 屬性提供對象的類的一組基本功能。 對象的新實例“繼承”賦予該對象原型的操作。
對于數組對象,用以下例子說明prototype 屬性的用途。
給數組對象添加返回數組中最大元素值的方法。要完成這一點,聲明一個函數,將它加入 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 屬性表示創建對象的函數。
object.constructor //object是對象或函數的名稱。
說明:constructor 屬性是所有具有prototype 的對象的成員。它們包括除 Global 和 Math對象以外的所有JScript固有對象。constructor屬性保存了對構造特定對象實例的函數的引用。

例如:

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

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

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

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

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

例如:

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可以取負數,表示從a位置開始截取到b位置的一段數組,是一個左閉右開的區間,a和b可以取負數,如果是負數代表倒數第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刪除元素并向數組添加新元素
object.splice(a)從左邊開始刪除a個元素
object.splice(a,b)從a位置開始截取其中的b個元素
object.splice(a,b,c,d)從a位置開始截取b個元素,并將c和d或者更多的元素插入原數組
需要注意的是splice會修改原數組

var arr=[1,2,3,4,5];arr.splice(2);//[3,4,5]arr;//[1,2];原數組被修改了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’,‘b’);//[2]arr;//[1,"a","b",3,4,5];

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

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

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

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

數組和一般對象的比較


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

數組和字符串的比較


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

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

向AI問一下細節

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

AI

祁阳县| 东乌珠穆沁旗| 崇州市| 邳州市| 云浮市| 凤山县| 新蔡县| 泰安市| 峨边| 湛江市| 库伦旗| 榆林市| 电白县| 天长市| 上思县| 晋州市| 云梦县| 平谷区| 仁寿县| 阿拉尔市| 武胜县| 高平市| 西丰县| 平湖市| 长沙市| 苍溪县| 潮安县| 溆浦县| 微山县| 荥阳市| 海宁市| 景宁| 岐山县| 贵港市| 奉化市| 中阳县| 和田县| 兴业县| 大兴区| 齐河县| 马关县|