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

資訊專欄INFORMATION COLUMN

javascript中Array常用方法總結(jié)

harriszh / 562人閱讀

摘要:函數(shù)接受個(gè)參數(shù)前一個(gè)值,當(dāng)前值,項(xiàng)索引,數(shù)組本身。更多數(shù)組方法請(qǐng)看

js內(nèi)置對(duì)象之Array

一,會(huì)改變?cè)瓟?shù)組 1.移除數(shù)組末尾最后一項(xiàng).pop()

返回刪除的元素

如果你在一個(gè)空數(shù)組上調(diào)用 pop(),它返回 undefined

    let word = ["a", "b", "c", "d"];  
    let newArr = word.pop();  
    console.log(word);      //["a", "b", "c"]  
    console.log(newArr);    //d  
  
    let nullArr = [];  
    console.log(nullArr.pop()); //undefined  
2.在數(shù)組末尾添加一個(gè)或多個(gè)元素.push()

返回修改后數(shù)組長(zhǎng)度

    let word = ["a", "b", "c", "d"];  
    let newArr = word.push("e","f");  
    console.log(word);      //["a", "b", "c", "d", "e", "f"]  
    console.log(newArr);    //6
3.移除數(shù)組第一項(xiàng).shift()

返回移除的元素

    let word = ["a", "b", "c", "d"];  
    let newArr = word.shift();  
    console.log(word);      //["b", "c", "d"]  
    console.log(newArr);    //a 
4.在數(shù)組頭部添加一個(gè)或多個(gè)元素.unshift()

返回修改后數(shù)組長(zhǎng)度

    let word = ["a", "b", "c", "d"];  
    let newArr = word.unshift("11","22");  
    console.log(word);      //["11", "22", "a", "b", "c", "d"]  
    console.log(newArr);    //6 
5.對(duì)數(shù)組元素排序.sort()

返回排序后的數(shù)組

默認(rèn)排序順序是根據(jù)字符串Unicode碼點(diǎn)

    let fruit = ["cherries", "apples", "bananas"];  
    console.log(fruit.sort());       // ["apples", "bananas", "cherries"]  
      
    let scores = [1, 10, 21, 2];   
    console.log(scores.sort());  
    // [1, 10, 2, 21]  
    // 注意10在2之前,  
    // 因?yàn)樵?Unicode 指針順序中"10"在"2"之前  
  
    let things = ["word", "Word", "1 Word", "2 Words"];  
    console.log(things.sort());   
    // ["1 Word", "2 Words", "Word", "word"]  
    // 在Unicode中, 數(shù)字在大寫字母之前,  
    // 大寫字母在小寫字母之前.  
  
    function compare(a, b) {  
        if(a < b) {  
            return -1;  
        }else if(a > b) {  
            return 1;  
        }else {  
            return 0;  
        }  
    }  
    let num = [1, 10, 21, 2];  
    console.log(num.sort(compare)); //[1, 2, 10, 21]
6.顛倒數(shù)組元素.reverse()

返回顛倒后的數(shù)組

    let word = ["a", "b", "c", "d"];  
    let newArr = word.reverse();  
    console.log(word);      //["d", "c", "b", "a"]  
    console.log(newArr);    //["d", "c", "b", "a"]  
7.刪除或插入元素.splice()

返回?cái)?shù)組刪除的項(xiàng)

沒有刪除的項(xiàng),返回空數(shù)組

    var word = ["a", "b", "c", "d"];  
    //刪除,前閉后開  
    var newArr = word.splice(0,2);  
    console.log(word);      //["c", "d"]  
    console.log(newArr);    //["a", "b"]  
  
    //插入,當(dāng)前數(shù)組索引1處插入hello  
    var newArr = word.splice(1,0,"hello");  
    console.log(word);      //["c", "hello", "d"]  
    console.log(newArr);    //[]  
  
    //替換  
    var newArr = word.splice(1,1,"world");  
    console.log(word);      //["c", "world", "d"]  
    console.log(newArr);    //["hello"]  
二,不會(huì)改變?cè)瓟?shù)組 1.合并兩個(gè)或多個(gè)數(shù)組.concat()

返回新數(shù)組

    let word = ["a", "b", "c", "d"];  
    let word2 = ["hello","world"];  
    let newArr = word.concat(word2);  
    console.log(word);      //["a", "b", "c", "d"]  
    console.log(newArr);    //["a", "b", "c", "d", "hello", "world"] 
2.將數(shù)組所有元素連接成一個(gè)字符串.join()

返回連接后的字符串

    let word = ["a", "b", "c", "d"];  
    let newArr = word.join("---");  
    console.log(word);      //["a", "b", "c", "d"]  
    console.log(newArr);    //a---b---c---d  
3.截取數(shù)組元素到新數(shù)組中.slice()

返回新數(shù)組

    let word = ["a", "b", "c", "d"];  
    //原數(shù)組索引為1開始截取后面所有元素  
    let newArr = word.slice(1);  
    console.log(word);      //["a", "b", "c", "d"]  
    console.log(newArr);    //["b", "c", "d"]  
      
    //截取原數(shù)組索引為1到3之間的元素,前閉后開  
    let newArr2 = word.slice(1,3);  
    console.log(word);      //["a", "b", "c", "d"]  
    console.log(newArr2);    //["b", "c"]  
  
    //截取原數(shù)組倒數(shù)第三個(gè)元素與倒數(shù)第一個(gè)元素之間的元素,前閉后開  
    let newArr3 = word.slice(-3,-1);  
    console.log(word);      //["a", "b", "c", "d"]  
    console.log(newArr3);    //[["b", "c"]  
4.獲取查詢?cè)氐谝淮纬霈F(xiàn)的索引.indexOf()

找不到查詢?cè)?,則返回-1

    let word = ["a", "b", "b", "c", "d"];  
    let index = word.indexOf("b");      //1,第一次出現(xiàn)b的索引值  
    let index2 = word.indexOf("hello"); //-1  
    console.log(index);  
    console.log(index2);  
5.獲取查詢?cè)刈詈笠淮纬霈F(xiàn)的索引.lastIndexOf()

找不到查詢?cè)?,則返回-1

    let word = ["a", "b", "b", "c", "d"];  
    let index = word.lastIndexOf("b");      //2,最后一個(gè)b的索引值為2  
    let index2 = word.lastIndexOf("hello"); //-1  
    console.log(index);  
    console.log(index2);  
6.toString()返回由數(shù)組每個(gè)元素的字符串形式拼接而成的以逗號(hào)分隔的字符串
    let word = ["a", "b", "b", "c", "d"];  
    let str = word.toString();      //a,b,b,c,d  
    console.log(str);  
7.toLocaleString()返回一個(gè)字符串表示數(shù)組中的元素,更多了解查看MDN 三,迭代方法

每個(gè)方法接受含有三個(gè)參數(shù)的函數(shù),三個(gè)參數(shù)為:數(shù)組中的項(xiàng),元素索引,數(shù)組本身

1.every(),數(shù)組所有元素都滿足要求則返回true,否則返回false
2.some(),只要有滿足要求的就返回true
3.filter(),返回過濾后的結(jié)果數(shù)組
4.map(),返回在函數(shù)中處理過的數(shù)組
5.forEach(),遍歷整個(gè)數(shù)組

    var number = [1,2,3,4,5,6,7,8];  
    var res = number.every(function(item, index, array) {  
        return (item > 2);  
    })  
    console.log(res);   //false  
  
    var res = number.some(function(item, index, array) {  
        return (item > 2);  
    })  
    console.log(res);   //true  
  
    var res = number.filter(function(item, index, array) {  
        return (item > 2);  
    })  
    console.log(res);   //[3, 4, 5, 6, 7, 8]  
  
    var res = number.map(function(item, index, array) {  
        return (item * 2);  
    })  
    console.log(res);   //[2, 4, 6, 8, 10, 12, 14, 16]  
  
    var res = number.forEach(function(item, index, array) {  
        //執(zhí)行某些操作 
    })  
四,歸并方法

迭代數(shù)組所有項(xiàng),構(gòu)建最終返回值,每個(gè)方法接受兩個(gè)參數(shù):調(diào)用的函數(shù)和作為歸并基礎(chǔ)的初始值。函數(shù)接受4個(gè)參數(shù):前一個(gè)值,當(dāng)前值,項(xiàng)索引,數(shù)組本身。函數(shù)返回的值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng),第一次迭代從數(shù)組第二項(xiàng)開始,當(dāng)前值為數(shù)組第二項(xiàng)

1.reduce(),從數(shù)組第一項(xiàng)開始遍歷到最后
2.reduceRight(),從數(shù)組最后一項(xiàng)開始遍歷到第一項(xiàng)

     /* 
        開始執(zhí)行回調(diào)函數(shù)cur為2,prev為1, 
        第二次執(zhí)行回調(diào)函數(shù),在之前的基礎(chǔ)上加1 
        函數(shù)返回的值都會(huì)作為一個(gè)參數(shù)傳給下一項(xiàng), 
        最后執(zhí)行函數(shù)時(shí)就是28+8 
    */  
    var number = [1,2,3,4,5,6,7,8];  
    var res = number.reduce(function(prev, cur, index, array) {  
        return prev + cur;  
    })  
    console.log(res);   //1+2+3+4+5+6+7+8=36  
  
    var res = number.reduceRight(function(prev, cur, index, array) {  
        return prev + cur;  
    })  
    console.log(res);   //8+7+6+5+4+3+2+1=36  
五,結(jié)束語(yǔ)

數(shù)組是除了函數(shù)對(duì)象之外在js中使用最多的數(shù)據(jù)類型,掌握一些數(shù)組中常用方法在使用js做開發(fā)時(shí)還是會(huì)有幫助的,而且有些面試中也會(huì)問到相關(guān)問題,比如數(shù)組操作方法中哪些會(huì)改變?cè)瓟?shù)組,哪些不會(huì)。更多數(shù)組方法請(qǐng)看MDN

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

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

相關(guān)文章

  • (轉(zhuǎn))JavaScrit常用數(shù)組算法總結(jié)

    摘要:原文地址不管是在面試中還是在筆試中,我們都會(huì)被經(jīng)常問到關(guān)于數(shù)組的一些算法,比方說數(shù)組去重?cái)?shù)組求交集數(shù)組擾亂等等。今天抽點(diǎn)時(shí)間把中的一些常用的數(shù)組算法做一下總結(jié),以方便大家面試筆試或者日常開發(fā)過程中用到。 原文地址:http://www.cnblogs.com/front-... 不管是在面試中還是在筆試中,我們都會(huì)被經(jīng)常問到關(guān)于javascript數(shù)組的一些算法,比方說數(shù)組去重、數(shù)組求...

    warnerwu 評(píng)論0 收藏0
  • JavaScriptArray方法的詳細(xì)總結(jié)常用數(shù)組操作(附完整示例)

    摘要:數(shù)組索引只是具有整數(shù)名稱的枚舉屬性,并且與通用對(duì)象屬性相同。利用的解構(gòu)賦值解構(gòu)賦值尾遞歸優(yōu)化遞歸非常耗內(nèi)存,因?yàn)樾枰瑫r(shí)保存成千上百個(gè)調(diào)用幀,很容易發(fā)生棧溢出。而尾遞歸的實(shí)現(xiàn),往往需要改寫遞歸函數(shù),確保最后一步只調(diào)用自身。 一.前言 因?yàn)樵诠ぷ鳟?dāng)中,經(jīng)常使用到j(luò)s的數(shù)組,而其中對(duì)數(shù)組方法的使用也是很頻繁的,所以總是會(huì)有弄混或者概念不夠清晰的狀況,所以,寫下這篇文章整理一番,本文有對(duì)幾乎...

    Alfred 評(píng)論0 收藏0
  • JavaScript數(shù)組——常用數(shù)組方法匯總

    摘要:本文記錄關(guān)于數(shù)組的一些常用方法,搜集總結(jié)。對(duì)于數(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ù)組末尾增加新的...

    HollisChuang 評(píng)論0 收藏0
  • JavaScript:對(duì)Object對(duì)象的一些常用操作總結(jié)

    摘要:一可以用作對(duì)象的復(fù)制可以用作對(duì)象的合并注意目標(biāo)對(duì)象自身也會(huì)改變。對(duì)象四返回一個(gè)數(shù)組,包括對(duì)象自身的不含繼承的所有可枚舉屬性不含屬性的鍵名。該方法返回被凍結(jié)的對(duì)象。方法判斷一個(gè)對(duì)象是否被凍結(jié)。 JavaScript對(duì)Object對(duì)象的一些常用操作總結(jié)。 一、Object.assign() 1.可以用作對(duì)象的復(fù)制 var obj = { a: 1 }; var copy = Object....

    馬龍駒 評(píng)論0 收藏0
  • JavaScript-總結(jié)常用代碼書寫規(guī)范

    摘要:函數(shù)聲明應(yīng)該在作用域的頂層。數(shù)組和對(duì)象字面量用數(shù)組和對(duì)象字面量來代替數(shù)組和對(duì)象構(gòu)造器。數(shù)組構(gòu)造器很容易讓人在它的參數(shù)上犯錯(cuò)。推薦對(duì)象構(gòu)造器不會(huì)有類似的問題,但是為了可讀性和統(tǒng)一性,我們應(yīng)該使用對(duì)象字面量。 javascript 代碼規(guī)范 代碼規(guī)范我們應(yīng)該遵循古老的原則:能做并不意味著應(yīng)該做。 全局命名空間污染 總是將代碼包裹在一個(gè)立即的函數(shù)表達(dá)式里面,形成一個(gè)獨(dú)立的模塊。 不推薦 va...

    Berwin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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