<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript數組常用操作技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:28:29
        文檔

        JavaScript數組常用操作技巧

        JavaScript數組常用操作技巧:前言相信大家都用慣了jquery或者underscore等這些類庫中常用的數組相關的操作,如$.isArray,_.some,_.find等等方法。這里無非是對原生js的數組操作多了一些包裝。這里主要匯總一下JavaScript數組操作的常用API。相信對大家解決程序問題很有幫助。一、性
        推薦度:
        導讀JavaScript數組常用操作技巧:前言相信大家都用慣了jquery或者underscore等這些類庫中常用的數組相關的操作,如$.isArray,_.some,_.find等等方法。這里無非是對原生js的數組操作多了一些包裝。這里主要匯總一下JavaScript數組操作的常用API。相信對大家解決程序問題很有幫助。一、性

        前言

        相信大家都用慣了jquery或者underscore等這些類庫中常用的數組相關的操作,如$.isArray,_.some,_.find等等方法。這里無非是對原生js的數組操作多了一些包裝。
        這里主要匯總一下JavaScript數組操作的常用API。相信對大家解決程序問題很有幫助。

        一、性質
        JavaScript中的數組是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,索引可能是整數。然而,這些數字索引在內部被轉換為字符串類型,這是因為JavaScript對象中的屬性名必須是字符串。

        二、操作

        1 判斷數組類型

        var array0 = []; // 字面量
        var array1 = new Array(); // 構造器
        // 注意:在IE6/7/8下是不支持Array.isArray方法的
        alert(Array.isArray(array0));
        // 考慮兼容性,可使用
        alert(array1 instanceof Array);
        // 或者
        alert(Object.prototype.toString.call(array1) === '[object Array]');

        2 數組與字符串

        非常簡單:由數組轉換為字符串,使用join;由字符串轉換為數組,使用split。

        // join - 由數組轉換為字符串,使用join
        console.log(['Hello', 'World'].join(',')); // Hello,World
        // split - 由字符串轉換為數組,使用split
        console.log('Hello World'.split(' ')); // ["Hello", "World"]

        3 查找元素

        相信大家都常用字符串類型indexOf,卻很少知道數組的indexOf同樣可以用于查找元素。

        // indexOf - 查找元素
        console.log(['abc', 'bcd', 'cde'].indexOf('bcd')); // 1
        // 
        var objInArray = [
         {
         name: 'king',
         pass: '123'
         },
         {
         name: 'king1',
         pass: '234'
         }
        ];
        console.log(objInArray.indexOf({
         name: 'king',
         pass: '123'
        })); // -1
        var elementOfArray = objInArray[0];
        console.log(objInArray.indexOf(elementOfArray)); // 0

        從以上可以看出,對于數組包含對象的這種數組,indexOf方法并非是經過深度比較來得到對應的查找結果,僅僅是比較對應元素的引用。

        4 數組連接

        使用concat,要注意,使用concat之后會生成一個新的數組。

        var array1 = [1, 2, 3];
        var array2 = [4, 5, 6];
        var array3 = array1.concat(array2); // 實現數組連接之后,會創建出新的數組
        console.log(array3);

        5 類列表操作

        用于添加元素,可分別使用push和unshift,移除元素可分別使用pop和shift。

        // push/pop/shift/unshift
        var array = [2, 3, 4, 5];
        // 添加到數組尾部
        array.push(6);
        console.log(array); // [2, 3, 4, 5, 6]
        // 添加到數組頭部
        array.unshift(1);
        console.log(array); // [1, 2, 3, 4, 5, 6]
        // 移除最后一個元素
        var elementOfPop = array.pop();
        console.log(elementOfPop); // 6
        console.log(array); // [1, 2, 3, 4, 5]
        // 移除第一個元素
        var elementOfShift = array.shift();
        console.log(elementOfShift); // 1
        console.log(array); // [2, 3, 4, 5]

        6 splice方法

        主要兩個用途:
        ① 從數組中間位置添加和刪除元素
        ② 從原有數組中,獲取一個新數組

        當然,兩個用途是一氣合成的,有些場景注重用途一,有些則注重用途二。

        從數組中間位置添加和刪除元素,splice方法為數組添加元素,需提供如下參數
        ① 起始索引(也就是你希望開始添加元素的地方)
        ② 需要刪除的元素的個數或者是提取的元素的個數(添加元素時該參數設置為0)
        ③ 想要添加進數組的元素

        var nums = [1, 2, 3, 7, 8, 9];
        nums.splice(3, 0, 4, 5, 6);
        console.log(nums); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 
        // 緊接著做刪除操作或者提取新的數組
        var newnums = nums.splice(3, 4);
        console.log(nums); // [1, 2, 3, 8, 9]
        console.log(newnums); // [4, 5, 6, 7]

        7 排序

        主要介紹reverse和sort兩個方法。數組反轉使用reverse,sort方法不僅可以用于簡單排序,也可以用于復雜排序。

        // 反轉數組
        var array = [1, 2, 3, 4, 5];
        array.reverse();
        console.log(array); // [5, 4, 3, 2, 1]
        我們先對字符串元素的數組進行排序
        var arrayOfNames = ["David", "Mike", "Cynthia", "Clayton", "Bryan", "Raymond"];
        arrayOfNames.sort();
        console.log(arrayOfNames); // ["Bryan", "Clayton", "Cynthia", "David", "Mike", "Raymond"]

        我們對數字元素的數組進行排序

        // 如果數組元素時數字類型,sort()方法的排序結果就不能讓人滿意了
        var nums = [3, 1, 2, 100, 4, 200];
        nums.sort();
        console.log(nums); // [1, 100, 2, 200, 3, 4]

        sort方法是按照字典順序對元素進行排序的,因此它假定元素都是字符串類型,因此,即使元素是數字類型,也被認為是字符串類型。這時,可以在調用方法時傳入一個大小比較函數,排序時,sort()方法將會根據該函數比較數組中兩個元素的大小,從而決定整個數組的順序。

        var compare = function(num1, num2) {
         return num1 > num2;
        };
        nums.sort(compare);
        console.log(nums); // [1, 2, 3, 4, 100, 200]
        var objInArray = [
         {
         name: 'king',
         pass: '123',
         index: 2
         },
         {
         name: 'king1',
         pass: '234',
         index: 1
         }
        ];
        // 對數組中的對象元素,根據index進行升序
        var compare = function(o1, o2) {
         return o1.index > o2.index;
        };
        objInArray.sort(compare);
        console.log(objInArray[0].index < objInArray[1].index); // true

        8 迭代器方法

        主要包含forEach和every、some和map、filter
        forEach相信大家都會,主要介紹一下其他四種方法。
        every方法接受一個返回值為布爾類型的函數,對數組中的每個元素使用該函數。如果對于所有的元素,該函數均返回true,則該方法返回true。

        var nums = [2, 4, 6, 8];
        // 不生成新數組的迭代器方法
        var isEven = function(num) {
         return num % 2 === 0;
        };
        // 如果都是偶數,才返回true
        console.log(nums.every(isEven)); // true
        some方法也接受一個返回值為布爾類型的函數,只要有一個元素使得該函數返回true,該方法就返回true。
        var isEven = function(num) {
         return num % 2 === 0;
        };
        var nums1 = [1, 2, 3, 4];
        console.log(nums1.some(isEven)); // true

        map和filter這兩個方法都可以產生新數組,map返回的新數組是對原有元素應用某個函數得到的結果。如:

        var up = function(grade) {
         return grade += 5;
        }
        var grades = [72, 65, 81, 92, 85];
        var newGrades = grades.ma

        filter方法和every方法很類似,傳入一個返回值為布爾類型的函數。和every()方法不同的是,當對數組中的所有元素應用該函數,結果均為true時,該方法并不返回true,而是返回一個新數組,該數組包含應用該函數后結果為true的元素。

        var isEven = function(num) {
         return num % 2 === 0;
        };
        var isOdd = function(num) {
         return num % 2 !== 0;
        };
        var nums = [];
        for (var i = 0; i < 20; i++) {
         nums[i] = i + 1;
        }
        var evens = nums.filter(isEven);
        console.log(evens); // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] 
        var odds = nums.filter(isOdd);
        console.log(odds); // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

        三、總結

        以上還存在某些方法在低級瀏覽器不支持的問題,還需要再采用其他方法進行兼容實現。

        這些都是常見的可能大家不太容易想到的方法。大家不妨多留意一下。

        希望本文所述對大家的javascript程序設計有所幫助。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript數組常用操作技巧

        JavaScript數組常用操作技巧:前言相信大家都用慣了jquery或者underscore等這些類庫中常用的數組相關的操作,如$.isArray,_.some,_.find等等方法。這里無非是對原生js的數組操作多了一些包裝。這里主要匯總一下JavaScript數組操作的常用API。相信對大家解決程序問題很有幫助。一、性
        推薦度:
        標簽: 設置 操作 方法
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲视频在线观看2018| 久久亚洲AV成人无码国产电影| 另类专区另类专区亚洲| 国产亚洲一卡2卡3卡4卡新区| 国产精品免费观看视频| 中文字幕精品亚洲无线码一区应用| 国产亚洲人成在线影院| 免费人成视频在线观看不卡| 免费国产a理论片| 亚洲国产精品成人一区| 亚洲视频免费在线看| 手机看黄av免费网址| 亚洲区小说区图片区| igao激情在线视频免费| 国产亚洲日韩一区二区三区| 日韩a级无码免费视频| 国产一区二区三区在线免费观看| 亚洲av无码一区二区三区天堂| 国产在线观看免费不卡| 搜日本一区二区三区免费高清视频 | 国产精品亚洲专区在线观看| 国产免费久久精品丫丫| 成人在线免费观看| 亚洲大尺度无码专区尤物| 中国xxxxx高清免费看视频| 2020亚洲男人天堂精品| 国产一级大片免费看| 你懂得的在线观看免费视频| 久久精品国产亚洲av麻豆色欲| 一级黄色免费大片| 久久精品国产亚洲AV麻豆王友容 | 免费国产不卡午夜福在线| 中文字幕免费在线看| 亚洲av午夜成人片精品电影| 99精品全国免费观看视频..| 亚洲国产成人精品无码区在线秒播| 国产美女被遭强高潮免费网站| 中文字幕免费播放| 亚洲精品一卡2卡3卡四卡乱码| 亚洲无人区一区二区三区| 欧美日韩国产免费一区二区三区|