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

溫馨提示×

溫馨提示×

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

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

JavaScript中數組Array方法詳解

發布時間:2020-10-08 20:33:08 來源:腳本之家 閱讀:257 作者:陌年古城 欄目:web開發

ECMAScript 3在Array.prototype中定義了一些很有用的操作數組的函數,這意味著這些函數作為任何數組的方法都是可用的。

1、Array.join()方法

Array.join()方法將數組中所有元素都轉化為字符串并連接在一起,返回最后生成的字符串。可以指定一個可選的符號或字符串在生成的字符串中來分隔數組的各個元素。如果不指定分隔符,默認使用逗號。注意:此方法不會改變原始數組

var arr = ['a', 'b', 'c'];
console.log(arr.join()); // a,b,c
console.log(arr.join(" ")); // a b c
console.log(arr.join("")); // abc
console.log(arr.join("slf")); // aslfbslfc
var arr2 = new Array(10);
console.log(arr2.join("-")); // ---------

擴展:Array.join()方法是String.split()方法的逆向操作,后者是將字符串分割成若干塊來創建一個數組。

2、Array.reverse()方法

Array.reverse()方法將數組中的元素顛倒順序,返回逆序的數組。它采取了替換;換句話說,它不通過重新排列的元素創建新的數組,而是在原先的數組中重新排列它們。注意:此方法會改變原始數組。

var arr = ['a', 'b', 'c'];
console.log(arr.reverse()); // ['c', 'b', 'a']
console.log(arr); // ['c', 'b', 'a']

3、Array.sort()方法

Array.sort()方法將數組中的元素排序并返回排序后的數組。當不帶參數調用sort()方法時,數組元素以字母表順序排序。注意:此方法會改變原始數組。

var arr = ['ba', 'b', 'ac'];
console.log(arr.sort()); // ['ac', 'b', 'ba']
console.log(arr); // ['ac', 'b', 'ba']

如果數組包含undefined元素,它們會被排到數組的尾部。

var arr = new Array(4);
arr[0] = 'ba';
arr[1] = 'b';
arr[2] = 'zc';
arr[3] = undefined;
console.log(arr.sort()); // ['ac', 'b', 'ba', undefined]
console.log(arr); // ['ac', 'b', 'ba', undefined]

如果想按照其他方式而非字母表順序進行數組排序,則必須給sort()方法傳遞一個比較函數。該函數決定了它的兩個參數在排好序的數組中的先后順序。假設第一個參數在前,比較函數應該返回一個小于0的數值。反之,假設第一個參數在后,函數應該返回一個大于0的數值。并且,假設兩個值相等(它們的順序無關緊要),函數應該返回0。例如,用數值大小而非字母表順序進行數組排序,代碼如下:

var arr = new Array(4);
arr[0] = 45;
arr[1] = 12;
arr[2] = 103;
arr[3] = 24;
console.log(arr.sort()); // [103, 12, 24 45]
console.log(arr.sort(function(a, b){return b-a;})); // [103, 45, 24, 12]

有時候需要對一個字符串數組執行不區分大小寫的字母表排序,這時可以使用比較函數,首先將參數都轉化為小寫字符串(使用toLowerCase()方法),再開始比較。

var arr = ['abc', 'Def', 'BoC', 'FED'];
console.log(arr.sort()); // ["BoC", "Def", "FED", "abc"]
console.log(arr.sort(function(s, t){
  var a = s.toLowerCase();
  var b = t.toLowerCase();
  if (a < b) return -1;
  if (a > b) return 1;
  return 0;
})); // ["abc", "BoC", "Def", "FED"]

4、Array.concat()方法

Array.concat()方法創建并返回一個新數組,它的元素包括調用concat()的原始數組的元素和concat()的每個參數。如果這些參數中的任何一個自身是數組,則連接的是數組的元素,而非數組本身。但要注意,concat()不會遞歸扁平化數組的數組。注意:此方法
不會修改原始數組。

var arr = ['abc', 'Def', 'BoC', 'FED'];
console.log(arr.concat(1, 2)); // ["abc", "Def", "BoC", "FED", 1, 2]
console.log(arr.concat(1, 2, [4, 5])); // ["abc", "Def", "BoC", "FED", 1, 2, 4, 5]
console.log(arr.concat(1, 2, [4, ['slf', 5]])); // ["abc", "Def", "BoC", "FED", 1, 2, 4, Array[2]]
console.log(arr); // ["abc", "Def", "BoC", "FED"]

5、Array.slice()方法

Array.slice()方法返回指定數組的一個片段或子數組。它的兩個參數分別指定了片段的開始和結束的位置。返回的數組包含第一個參數指定的位置和所有到第二個參數指定的位置(但不含第二個參數指定的位置)之間的所有數組元素。如果只指定一個參數,返回的數組將包含從開始位置到數組結尾的所有元素。如參數中出現負數,它表示相對于數組中最后一個元素的位置。例如,參數-1指定了最后一個元素,而-3指定了倒數第三個元素。注意,此方法不會修改原始數組。

var arr = ['abc', 'Def', 'BoC', 'FED', 'slf'];
console.log(arr.slice(1, 2)); // ["Def"]
console.log(arr.slice(3)); // ["FED", 'slf']
console.log(arr.slice(0, -1)); // ['abc', 'Def', 'BoC', 'FED']
console.log(arr.slice(-3, -1)); // ['BoC', 'FED']
console.log(arr); // ['abc', 'Def', 'BoC', 'FED', 'slf']

6、Array.splice()方法

Array.splice()方法是在數組中插入或刪除元素的通用方法。注意,splice()和slice()擁有非常相似的名字,但它們的功能卻有本質的區別。splice()能夠從數組中刪除元素、插入元素到數組中或者同時完成這兩種操作。在插入或刪除點之后的數組元素會根據需要增加或減小它們的索引值,因此數組的其他部分仍然保持連續的。splice()的第一個參數指定了插入和(或)刪除的起始位置。第二個參數指定了應該從數組中刪除的元素的個數。如果省略第二個參數,從起始點開始到數組結尾的所有元素都將被刪除。splice()返回一個由刪除元素組成的數組,或者如果沒有刪除元素就返回一個空數組。注意:此方法會改變原始數組。(區別于concat(), splice()會插入數組本身而非數組的元素。)

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.splice(7)); // [8, 9]
console.log(arr); // [1, 2, 3, 4, 5, 6, 7]
console.log(arr.splice(2, 4)); // [3, 4, 5]
console.log(arr); // [1, 2, 7]
console.log(arr.splice(2, 1, 3, 4, 5, 6)); // [7]
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(arr.splice(3, 2, 3, [1, 2, 3])); // [4, 5]
console.log(arr); // [1, 2, 3, [1, 2, 3], 6]

7、Array.push()和Array.pop()方法

push()和pop()方法允許將數組當做棧來使用。push()方法在數組的尾部添加一個或多個元素,并返回數組新的長度。pop()方法則相反:它刪除數組的最后一個元素,減小數組長度并返回它刪除的值。注意:這兩個方法都會修改原始數組。

var arr = [1, 2, 3];
console.log(arr.push(7)); // 4
console.log(arr); // [1, 2, 3, 7]
console.log(arr.push([2, 4])); // 5
console.log(arr); // [1, 2, 3, 7, [2, 4]]
console.log(arr.pop()); // [2, 4]
console.log(arr); // [1, 2, 3, 7]

8、Array.unshift()和Array.shift()方法

unshift()和shift()方法的行為非常類似于push()和pop()方法,不一樣的是:前者是在數組的頭部進行元素的插入和刪除操作。unshift()在數組的頭部添加一個或多個元素,并將已存在的元素移動到更高索引的位置來獲得足夠的空間,最后返回數組新的長度。shift()刪除數組的第一個元素并返回所刪除的元素,然后把所有隨后的元素向前移動一個位置來填補數組頭部的空缺。注意:這兩個方法都會修改原始數組。

var arr = [6, 2, 3, 4, 5, 6];
console.log(arr.shift()); // 6
console.log(arr); // [2, 3, 4, 5, 6]
console.log(arr.unshift(['a', 'b'])); // 6
console.log(arr); // [['a', 'b'], 2, 3, 4, 5, 6]
console.log(arr.unshift('a', 'b')); // 8
console.log(arr); // ['a', 'b', ['a', 'b'] 2, 3, 4, 5, 6]

注意,當使用多個參數調用unshift()時,如果參數是一次性插入的而非一次一個地插入,這意味著最終的數組中插入的元素的順序和它們在參數列表中的順序一致。而假如元素是一次一個地插入,它們的順序應該是反過來的。

var arr = [6, 2, 3, 4, 5, 6];
console.log(arr.unshift('a', 'b', 'c')); // 9
console.log(arr); // ['a', 'b', 'c', 6, 2, 3, 4, 5, 6]
console.log(arr.unshift(1)); // 10
console.log(arr); // [1, 'a', 'b', 'c', 6, 2, 3, 4, 5, 6]
console.log(arr.unshift(2)); // 11
console.log(arr); // [2, 1, 'a', 'b', 'c', 6, 2, 3, 4, 5, 6]

9、Array.toString()和Array.toLocaleString()方法

數組和其他JavaScript對象一樣擁有toString()方法。針對數組,該方法將數組的每個元素都轉化為字符串并且輸出用逗號分隔的字符串列表。注意:此方法不會修改原始數組(這與不使用任何參數調用join()方法返回的字符串是一樣的)

var arr = [1, 2, 3];
console.log(arr.toString()); // 1,2,3
console.log(typeof(arr.toString())) // string
console.log(arr); // [1, 2, 3]

擴展:toLocaleString()是toString()方法的本地化版本。它調用元素的toLocaleString()方法將每個數組元素轉化為字符串,并且使用本地化分隔符將這些字符串連接起來生成最終的字符串。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!

向AI問一下細節

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

AI

海宁市| 信宜市| 新乡县| 纳雍县| 岳普湖县| 镇原县| 海原县| 武山县| 沧州市| 南开区| 曲松县| 宁安市| 神池县| 全州县| 宿迁市| 宕昌县| 集贤县| 张家界市| 区。| 肃宁县| SHOW| 盐城市| 华蓥市| 黄龙县| 博客| 余江县| 太白县| 吉木乃县| 呼图壁县| 韩城市| 南乐县| 东乡县| 阜阳市| 昌平区| 曲靖市| 定南县| 班戈县| 中牟县| 什邡市| 阿尔山市| 白河县|