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

溫馨提示×

溫馨提示×

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

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

JavaScript中有哪些數組方法

發布時間:2021-06-24 15:41:35 來源:億速云 閱讀:159 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關JavaScript中有哪些數組方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

不改變原數組的方法:

1.indexOf() 和lastIndexOf()

1.1 indexOf() : 返回元素在數組的索引,從0開始。若數組不存在該元素,則返回-1

var arr = [1, 2]; arr.indexOf(1); //0 arr.indexOf(10); //-1

1.2 lastIndexOf():返回元素在數組中最后一次出現的索引,如果沒有出現則返回-1.

var arr = [1, 2, 3, 4, 2]; arr.lastIndexOf(2); // 4

2.slice(): 與字符串substring()方法一樣,截取數組的一部分,返回一個新的數組。

2.1 通常,接受2個參數作為一個左閉右開區間,即包括開始索引位置的元素,但不包括結束索引位置的元素。

var arr = [1, 2, 3,4,5,6]; arr.slice(0,2) //[1, 2] 只返回索引0,1位置的元素

2.2 可以省略第二個參數,即截取到原數組的最后一個元素。

arr.slice(2,); //[3, 4, 5, 6]

2.3 如果沒有傳參數,則返回一個從頭到尾截取所有元素的新數組。可以用來復制一個數組。

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

3.concat(): 合并數組。把當前的數組和另一個數組連接起來,并返回一個新的數組。

3.1 concat()方法的參數可以有多個,也可以任意任意類型,數值字符串布爾值數組對象 都可以,參數會被被添加到新的數組中。

var arr1 = [1, 2, 3,4,5,6]; var arr2 = ['a','b','c']; var arr3 = arr1.concat(arr2); arr3; //[1, 2, 3, 4, 5, 6, "a", "b", "c"]

3.2 注意,如果參數是數組, 會被拉平一次,即數組會被拆開來,加入到新的數組中。具體看示例:

var arr1 = [1, 2, 3]; var arr2 = arr1.concat(66,'abc',true,[10,20],[30,[31,32]],{x:100}); arr2; //[1, 2, 3, 66, "abc", true, 10, 20, 30, [31,32], {x:100}]

4.join(): 轉成字符串。它會把當前Array的每個元素都用指定的字符串連接起來,然后返回連接后的字符串。

4.1 參數是用來指定連接的字符串。見示例代碼:

var arr = [1, 2, 3]; arr.join('*') //"1*2*3"

4.2 如果沒有指定參數,默認是用,連接。

var arr = [1, 2, 3]; arr.join() //"1,2,3"

5.toString(): 返回數組的字符串形式

var arr = [1, 2, 3]; arr.toString() // "1,2,3"

6.valueOf():返回數組本身

var arr = [1, 2, 3]; arr.valueOf() // [1, 2, 3]

7.map():

7.1 對數組的所有成員依次調用一個函數,返回值是一個新數組。

var arr = [1, 2, 3]; arr.map(function(elem){ return elem*2; }); //[2, 4, 6, 8] arr; //[1, 2, 3]

7.2 map方法接受一個函數作為參數,該函數調用時,map方法會將其傳入3個參數,分別是當前成員、當前位置和數組本身(后2個參數可選)。

arr.map(function(elem, index, arr) { return elem * index; }); //[0, 2, 6]

7.3 map方法還可以接受第2個參數,表示回調函數執行時this所指向的對象。

8.forEach(): 與map方法很相似,也是遍歷數組的所有成員,執行某種操作。注意forEach方法一般沒有返回值

var arr = [1, 2, 3]; function log(element, index, array) { console.log('[' + index + '] = ' + element); } arr.forEach(log); // [0] = 1 // [1] = 2 // [2] = 3

注意forEach方法無法中斷執行,總是會將所有成員遍歷完。如果希望符合某種條件時,就中斷遍歷,要使用for循環

9.filter():

9.1 篩選數組的元素,返回值是符合篩選條件元素組成的一個新數組。

var arr = [1, 2, 3, 4, 5]; arr.filter(function (elem) { return (elem > 3); }); //[4, 5]

9.2 filter方法接受一個函數作為參數,該函數調用時,fitler方法會將其傳入3個參數,分別是當前成員、當前位置和數組本身(后2個參數可選)。

var arr = [1, 2, 3, 4, 5]; arr.filter(function (elem, index, arr) { return index % 2 === 1; }); //[2, 4]

9.3 filter方法還可以接受第2個參數,指定測試函數所在的上下文對象(即this對象)。

10.some()every(): 類似“斷言”(assert),用來判斷數組成員是否符合某種條件。

10.1 接受一個函數作為參數,所有數組成員依次執行該函數,返回一個布爾值。該函數接受三個參數,依次是當前位置的成員、當前位置的序號和整個數組。

10.2 some方法是只要有一個數組成員的返回值是true,則整個some方法的返回值就是true,否則false。

var arr = [1, 2, 3, 4]; arr.some(function (elem, index, arr) { return elem >= 3; }); // true

10.3 every方法則是所有數組成員的返回值都是true,才返回true,否則false。

var arr = [1, 2, 3, 4]; arr.every(function (elem, index, arr) { return elem >= 3; }); // false

10.4 注意,對于空數組some方法返回false,every方法返回true

10.5 someevery方法還可以接受第2個參數,用來綁定函數中的this關鍵字

11.reduce()reduceRight(): 依次處理數組的每個成員,最終累計為一個值。

11.1reduce從左到右處理(從第一個成員到最后一個成員)

arr.reduce(function(x, y){ console.log(x, y) return x + y; }); // 1 2 // 3 3 // 6

11.2reduceRight則是從右到左處理(從最后一個成員到第一個成員)

arr.reduceRight(function(x, y){ console.log(x, y) return x + y; }); // 3 2 // 5 1 // 6

改變原數組的方法:

1.push(): 向數組的末尾添加若干元素。返回值是改變后的數組長度。

var arr = [1, 2]; arr.push(3) ;// 3 arr; // [1, 2, 3] arr.push('b','c'); //5 arr; //[1, 2, 3, "b", "c"] arr.push([10,20]); //6 arr; //[1, 2, 3, "b", "c", [10,20]]

2.pop(): 刪除數組最后一個元素。返回值是刪除的元素。

var arr =[1, 2, 3, "b", "c", [10,20]]; arr.pop(); //[10, 20] arr; // [1, 2, 3, "b", "c"]

3.unshift(): 向數組頭部添加若干元素。返回值是改變后的數組長度。

var arr = [1, 2]; arr.unshift(3,4 ); //4 arr; // [3, 4, 1, 2]

4.shift(): 刪除數組最后一個元素。返回值是刪除的元素。

var arr = ['a', 'b', 1, 2]; arr.shift(); //'a' arr; //['b', 1, 2]

5.sort(): 數組排序。

5.1 注意:默認是將所有元素轉換成字符串,再按字符串Unicode碼點排序。返回值是新的數組。

var arr = [1, 2, 12, 'a', 'b', 'ab', 'A', 'B'] arr.sort(); //[1, 12, 2, "A", "B", "a", "ab", "b"] 注意:12排在了2的前面

5.2 如果元素都是數字,要按從小到大排序,可以傳入一個回調函數作為參數。

`var arr = [1, 2, 12, 100]

arr.sort(function(a,b){ return a-b; }); // [1, 2, 12, 100]`

5.3 如果想要從大到小排序:

arr.sort(function(a,b){ return b-a; }); //[100, 12, 2, 1]

6.reverse(): 顛倒數組中元素的位置

var arr = [1, 2, 12, 'a', 'b', 'ab', 'A', 'B']; arr.reverse(); //["B", "A", "ab", "b", "a", 12, 2, 1]

7.splice(): 修改數組元素(新增、刪減、替換)。從指定的索引開始刪除若干個元素,然后再從該位置添加若干個元素。返回值是刪除的元素組成的數組。參數1是刪除元素的起始索引,參數2是刪除的元素個數,之后的參數為待添加的元素。

7.1 只刪除,不添加。可以傳入2個參數:

`var arr = ['Alibaba', 'Tencent', 'Baidu', 'XiaoMi', '360'];

// 從索引2開始刪除3個元素 arr.splice(2, 3); // 返回刪除的元素 ['Baidu', 'XiaoMi', '360'] arr; // ['Alibaba', 'Tencent']`

7.2 只添加,不刪除。第2個參數設為0,即不刪除元素。

arr.splice(2, 0, 'Toutiao', 'Meituan', 'Didi'); // 返回[],因為沒有刪除任何元素 arr; //["Alibaba", "Tencent", "Toutiao", "Meituan", "Didi"]

7.3 先刪除若干元素,然后在刪除的位置上在添加若干個元素。

var arr =["Alibaba", "Tencent", "Toutiao", "Meituan", "Didi"] arr.splice(2,2,'Apple','Google'); //["Toutiao", "Meituan"] arr; //["Alibaba", "Tencent", "Apple", "Google", "Didi"]

Array.isArray()

用來判斷一個值是否為數組, 如果參數為數組,返回true,否則,返回false.

`var arr = [1,2] Array.isArray(arr); //true;

Array.isArray('a'); //false`http://www.smxfk.com

看完上述內容,你們對JavaScript中有哪些數組方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

庆阳市| 佳木斯市| 镇康县| 申扎县| 柞水县| 祁东县| 绥化市| 米林县| 兴城市| 桑日县| 佛教| 卢湾区| 新安县| 定日县| 霍林郭勒市| 长葛市| 凭祥市| 永福县| 云阳县| 白河县| 贵定县| 汝城县| 社旗县| 将乐县| 宜兴市| 伊春市| 乌兰县| 临桂县| 无为县| 新竹市| 喜德县| 景德镇市| 杭州市| 镇沅| 泰宁县| 华亭县| 新乡市| 吉木萨尔县| 洞口县| 清涧县| 赞皇县|