成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript數(shù)組——常用數(shù)組方法匯總

HollisChuang / 1379人閱讀

摘要:本文記錄關(guān)于數(shù)組的一些常用方法,搜集總結(jié)。對于數(shù)組中的每個(gè)元素,都會(huì)調(diào)用函數(shù)一次。返回值是一個(gè)新數(shù)組,其中的每個(gè)元素均為關(guān)聯(lián)的原始數(shù)組元素的回調(diào)函數(shù)返回值。

本文記錄關(guān)于js數(shù)組的一些常用方法,搜集總結(jié)。

主要思路:
1. 方法功能是什么
2. 傳遞的參數(shù)是什么
3. 返回值是什么
4. 原來的數(shù)組是否改變
第一組:關(guān)于數(shù)組的增加、刪除和修改 1.push 向數(shù)組末尾增加新的內(nèi)容,返回的是添加后新數(shù)組的長度,原有的數(shù)組改變了
    var arr=[10,11,12,13,14,15];
    var res=arr.push(16,17);
    console.log(res);    //8
    console.log(arr);    //[10,11,12,13,14,15,16,17]
2.unshift 向數(shù)組的開頭增加新的內(nèi)容,返回的是添加后新數(shù)組的長度,原來的數(shù)組也改變
    var res=arr.unshift(16,17);
    console.log(res);   //8
3.splice(n,m,x) 把原有數(shù)組中的某些項(xiàng)進(jìn)行替換。(先刪除,然后用x替換)。從所以n(包含n)開始,向后刪除m個(gè)元素,用x替換,返回刪除的數(shù)組

原有數(shù)組改變規(guī)律:
splice(0,0,x) 相當(dāng)于unshift,splice(arr.length,0,x) 相當(dāng)于push,splice(n,0,x) 向數(shù)組中間某個(gè)位置添加新的內(nèi)容 從索引n開始,刪除0個(gè)內(nèi)容,把新增的內(nèi)容x放在索引n的前面。返回的是一個(gè)空數(shù)組,原有數(shù)組改變n開始的索引splice(n,m) 刪除數(shù)組指定項(xiàng),從所以n(包含n)開始,向后刪除m個(gè)元素 ,把刪除的內(nèi)容當(dāng)做新數(shù)組返回,原有數(shù)組改變

    var res=arr.splice(2,0,"michael");  //在12后面添加“michael"
    console.log(arr);
4.pop 刪除數(shù)組最后一個(gè),返回的是刪除的那一項(xiàng),原有數(shù)組改變。shift 刪除數(shù)組第一個(gè),返回的是刪除的那一項(xiàng),原有數(shù)組改變 第二組:數(shù)組的查詢和復(fù)制 5.slice(n,m) 從索引n(包含n)開始找到索引m(不包含m)處。把找到的內(nèi)容作為一個(gè)新的數(shù)組返回,原有數(shù)組是不改變的。
javascript    var arr=[10,11,12,13,14,15];
    var res=arr.slice(1,4);
    console.log(res);   //[11, 12, 13]
    console.log(arr);   //[10, 11, 12, 13, 14, 15]
    slice(n) 從索引n(包含n)開始找到末尾
    slice(0)  // slice()  將原來數(shù)組原封不動(dòng)的復(fù)制一份,數(shù)組clone
6. concat 本意是實(shí)現(xiàn)數(shù)組的拼接的 arr1.concat(arr2) 將數(shù)組arr2和數(shù)組arr1合并成新的數(shù)組,原來的數(shù)組也不變

concat也可以是數(shù)組的克隆,原來的數(shù)組也改變(相當(dāng)于slice(0))

    var arr1=[10,11,12,13,14,15];
    var arr2=[16,17];
    var res=arr1.concat(arr2);
    console.log(arr1);  //[10, 11, 12, 13, 14, 15]
    console.log(res);   //[10, 11, 12, 13, 14, 15, 16, 17]
第三組:將數(shù)組轉(zhuǎn)化為我們的字符串 7.toString 把數(shù)組中的每一項(xiàng)拿出來,用逗號隔開,組成字符串,原有數(shù)組不變
javascript     var arr=["name","michael","age","24"];
     var res=arr.toString();
     console.log(res);   //name,michael,age,24
     console.log(arr);   //["name", "michael", "age", "24"]
8.join(分隔符) 把數(shù)組中的每一項(xiàng)拿出來,用指定的分隔符隔開,原有數(shù)組不變。
     var arr=["name","michael","age","24"];
     var res=arr.join("|");
     console.log(res);           //"name|michael|age|24"
     console.log(res.length);    //19
     console.log(arr);           //["name", "michael", "age", "24"]
     console.log(arr.length);    //4

例:實(shí)現(xiàn)數(shù)組中數(shù)字的求和

     var arr=[10,11,12,13,14,15];
     var str=arr.join("+");      //"10+11+12+13+14+15"
     var total=eval(str);        //eval 將指定的字符串變成真正的額表達(dá)式執(zhí)行
     console.log(total);         //75
     console.log(arr);           //[10, 11, 12, 13, 14, 15]
第四組:排列和排序 9.reverse 數(shù)組倒過來排列,原有數(shù)組改變。
     var arr=[10,11,12,13,14,15];
     console.log(arr);           //[10, 11, 12, 13, 14, 15]
     var res=arr.reverse();      //"10+11+12+13+14+15"
     console.log(res);         //[15, 14, 13, 12, 11, 10]
10.sort 數(shù)組的排序,可以實(shí)現(xiàn)由大到小(由小到大),原有的數(shù)組也變

直接寫sort只能處理10以內(nèi)的數(shù)字排序,處理10以上的我們需要傳遞一個(gè)參數(shù),這個(gè)參數(shù)必須是函數(shù)

     var arr=[10,12,11,19,13,15,6];
     console.log(arr);           //[10, 12, 11, 19, 13, 15,6]
     var res=arr.sort();
     console.log(res);         //[10, 11, 12, 13, 15, 19, 6]

改進(jìn):

     var arr=[10,12,11,19,13,15,6];
     console.log(arr);           //[10, 12, 11, 19, 13, 15,6]
     var res1=arr.sort(function(a,b){return a-b;});   //實(shí)現(xiàn)由小到大
     console.log(res1);
     var res2=arr.sort(function(a,b){return b-a;})   //實(shí)現(xiàn)由大到小
     console.log(res2);         //[10, 11, 12, 13, 15, 19, 6]
     var arr=[10,12,11,19,13,6];
     console.log(arr);           //[10, 12, 11, 19, 13, 15,6]

     var res1=arr.sort(function(a,b){
     //a表示每一次循環(huán)的時(shí)候的當(dāng)前項(xiàng),b是后面的項(xiàng)
     //return a-b;當(dāng)前項(xiàng)減去后一項(xiàng),如果大于0,代表前面的比后面的大,這樣的話就交換位置
     //冒泡排序:sort實(shí)現(xiàn)排序,就是遵循冒泡排序的思想實(shí)現(xiàn)的
     console.log(a+"<====>"+b);
     return a-b;});   //實(shí)現(xiàn)由小到大
第五組:一些常用但不兼容 11.indexOf array1.indexOf(searchElement[, fromIndex])

fromIndex可選 用于開始搜索的數(shù)組索引。 如果省略 fromIndex,則從索引 0 處開始搜索。
數(shù)組中的 searchElement 的第一個(gè)匹配項(xiàng)的索引;如果未找到 searchElement,則為 -1。

     var arr=["hello","michael","good","study"];
     var p=arr.indexOf("mi",0);
     console.log(p);           //-1
12.forEach array1.forEach(callbackfn[, thisArg])

callbackfn 必選。 最多可以接受三個(gè)參數(shù)的函數(shù)。 對于數(shù)組中的每個(gè)元素,forEach 都會(huì)調(diào)用 callbackfn 函數(shù)一次。

thisArg 可選。 callbackfn 函數(shù)中的 this 關(guān)鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。

如果 callbackfn 參數(shù)不是函數(shù)對象,則將引發(fā) TypeError 異常。

對于數(shù)組中出現(xiàn)的每個(gè)元素,forEach 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次(采用升序索引順序)。 將不會(huì)為數(shù)組中缺少的元素調(diào)用回調(diào)函數(shù)。

除了數(shù)組對象之外,forEach 方法可由具有 length 屬性且具有已按數(shù)字編制索引的屬性名的任何對象使用。

回調(diào)函數(shù)的語法:function callbackfn(value, index, array1):

參數(shù) 參數(shù)說明
value 數(shù)組元素的值
index 數(shù)組元素的數(shù)字索引
array1 包含該元素的數(shù)組對象
     // Create an array.
     var numbers = [10, 11, 12];

     // Call the addNumber callback function for each array element.
     var sum = 0;
     numbers.forEach(
     function addNumber(value) { sum += value; }
     );

     document.write(sum);
     // Output: 33

https://msdn.microsoft.com/zh-cn/library/ff679980(v=vs.94).aspx

13.map array1.map(callbackfn[, thisArg])

callbackfn 必選。 最多可以接受三個(gè)參數(shù)的函數(shù)。 對于數(shù)組中的每個(gè)元素(不會(huì)對undefined元素調(diào)用),map 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次。

[, thisArg] 可選。 callbackfn 函數(shù)中的 this 關(guān)鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。

返回值是一個(gè)新數(shù)組,其中的每個(gè)元素均為關(guān)聯(lián)的原始數(shù)組元素的回調(diào)函數(shù)返回值。如果 callbackfn 參數(shù)不是函數(shù)對象,則將引發(fā) TypeError 異常。

對于數(shù)組中的每個(gè)元素,map 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次(采用升序索引順序)。 將不會(huì)為數(shù)組中缺少的元素調(diào)用回調(diào)函數(shù)。除了數(shù)組對象之外,map 方法可由具有 length 屬性且具有已按數(shù)字編制索引的屬性名的任何對象使用。

回調(diào)函數(shù)的語法如下所示:function callbackfn(value, index, array1):

參數(shù) 參數(shù)說明
value 數(shù)組元素的值
index 數(shù)組元素的數(shù)字索引
array1 包含該元素的數(shù)組對象
    // Define the callback function.
     function AreaOfCircle(radius) {
     var area = Math.PI * (radius * radius);
     return area.toFixed(0);
     }

     // Create an array.
     var radii = [10, 20, 30];

     // Get the areas from the radii.
     var areas = radii.map(AreaOfCircle);

     document.write(areas);

     // Output:
     // 314,1257,2827
     */

本文記錄關(guān)于js數(shù)組的一些常用方法,搜集總結(jié),如有不妥,望指正。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85739.html

相關(guān)文章

  • JavaScript中操作數(shù)組常用函數(shù)匯總

    摘要:示例語法作用方法用于刪除并返回?cái)?shù)組的最后一個(gè)元素。返回值一個(gè)新的字符串,該字符串值包含的一個(gè)子字符串,其內(nèi)容是從處到處的所有字符,其長度為減。返回值一個(gè)新的字符串,包含從的包括所指的字符處開始的個(gè)字符。 1.concat()語法:arrayObject.concat(array1,array2,......,arrayn)作用:concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。特征:該方法...

    beita 評論0 收藏0
  • es6常用數(shù)組操作及技巧匯總

    摘要:檢測數(shù)組或者檢測對象的原型鏈?zhǔn)欠裰赶驑?gòu)造函數(shù)的對象或者終極大招注意不可以用此方法檢查常用方法合并多個(gè)數(shù)組,返回合并后的新數(shù)組,原數(shù)組沒有變化。返回值是由被刪除的元素組成的一個(gè)數(shù)組。 定義數(shù)組 const array = [1, 2, 3]; 或者 const array = new Array(); array[0] = 1; 建議盡量使用第一種形式定義數(shù)組,采用new的形式在大量的數(shù)...

    Noodles 評論0 收藏0
  • es6常用數(shù)組操作及技巧匯總

    摘要:檢測數(shù)組或者檢測對象的原型鏈?zhǔn)欠裰赶驑?gòu)造函數(shù)的對象或者終極大招注意不可以用此方法檢查常用方法合并多個(gè)數(shù)組,返回合并后的新數(shù)組,原數(shù)組沒有變化。返回值是由被刪除的元素組成的一個(gè)數(shù)組。 定義數(shù)組 const array = [1, 2, 3]; 或者 const array = new Array(); array[0] = 1; 建議盡量使用第一種形式定義數(shù)組,采用new的形式在大量的數(shù)...

    jk_v1 評論0 收藏0
  • 前端實(shí)習(xí)面試匯總

    摘要:題目來源前端實(shí)習(xí)生面試總結(jié)最近開始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄下來進(jìn)行一個(gè)總結(jié),同樣也希望對正在準(zhǔn)備面實(shí)習(xí)生的童鞋們有所幫助最后一個(gè)參數(shù)是做什么用的答規(guī)定事件是冒泡還是捕獲。 最近一直在多看基礎(chǔ)的書多碼代碼準(zhǔn)備找實(shí)習(xí),在網(wǎng)上也搜羅了不少面經(jīng),現(xiàn)在把搜羅到的實(shí)習(xí)生面試題自己整理一下。 題目來源:前端實(shí)習(xí)生面試總結(jié)最近開始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄...

    張利勇 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<