zoukankan      html  css  js  c++  java
  • 2016-06-06 数组的几个重要方法

    1.

    var arr=[1,2,3]
    arr.push('abc');//返回的是数组的长度为 4 arr=[1,2,3,'abc']
    如果是 arr.unshift('abc');返回的也是数组长度为4,IE6 IE7 不支持返回的是undefined,arr=['abc',1,2,3]
    
    var arr=[1,2,3];
    arr.pop();删除最后一个 arr=[1,2], arr.pop()返回的是删除的元素
    arr.shift();删除第一个 arr=[2,3]
    
    交换位置
    var arr =['a','b','c','d'];
    要求:a b c往后移动一位,d放在最前面
    解决:先把d拿走 arr.pop();//返回的是d,
    然后放置到第一位  arr.unshift(arr.pop());
    
    要求:b c d往前移动一位 a到最后
    解决:先把a拿走 即:arr.shift(),在把a放到最后arr.push()
    arr.push(arr.shift());
    <script>
        //吊炸天的splice方法  删除 替换 添加功能
        var arr =['a','b','c','d','e'];
        //删除
        alert(arr.splice(0,2));//返回的是删除的东西,从第0位开始删除两位 即 a b
        alert(arr);// arr=[c,d,e
        //替换
        alert(arr.splice(0,1,'fff'));//替换数组的第0位即a,只替换一位,所以 弹出a
        alert(arr);// fff,b,c,d,e
    
        alert((arr.splice(0,2,'fff','ggg')))//a b 从第零位开始,往后替换两位,如果不写ggg,则数组长度减少一位
        alert(arr)// fff,ggg,c,d,e
    
        //添加
       alert(arr.splice(1,0,'m','n','l')) ;//从数组下标为1的地方添加三个数,0代表添加
       alert(arr)//a m n l b c d e
    
    
        //去重
        var arr=[1,1,2,2,2,4,4,4,6,4,5,8,8];
        alert(removeRepeat(arr));//1 2 4 6 5 8
        //抽取去重方法
        function removeRepeat(arr){
            if(arr==null || arr==undefined) return;
            for(var i=0;i<arr.length;i++){
                for(var j=i+1; j<arr.length;j++){
                    if(arr[i]==arr[j]){
                        arr.splice(j,1);//注意删除小标j,数组长度会减1,
                        j--;//所以arr[j]的元素也要减少一个
                    }
                }
            }
            return arr;
        }
    
    
        //sort()排序
        //1.默认的sort()排序是字符串比较,只比较第一位
        var nums =[1,4,7,8,5,9];
        alert(nums.sort());//1 4 5 7 8 9
        var chars=['a','z','c','f','t']//a c f t z  因为 a-z 97-122
        alert(chars.sort());
        var nums2=[1,4,22,3,8,9,77,56,48];//-->var nums2=['1','4','22','3','8','9','77','56','48'] '77'第一位是7,小于8 和9
        alert(nums2.sort());//1 22 3 4 48 56 77 8 9 为什么会这样??? 因为默认的sort()排序是字符串比较,只比较第一位
    
        //如何改变这种状况,加入比较器
        alert(nums2.sort(function(a,b){return a-b;}));//1 3 4 8 9 22 48 56 77
    
        //如何排序字符串不完全是数字呢?
        var arr =['100px','20px','8px','10px','200px'];
      //  alert(arr.sort())//默认是 100px 10px 200px 20px 8px
        //怎么办?去除ox再加入比较器
        alert(arr.sort(function(a,b){return parseInt(a)-parseInt(b)}));//8px 10px 20px 100px 200px
    
    </script>

     3.随机数

        //随机数
    
        //0-x
        Math.round(Math.random()*x);
        //1-x
        Math.ceil(Math.random()*x);
        //从x 到y 之间的随机数  如:100-450
        Math.round(Math.random()*(y-x)+x);
    

      4.翻转字符串

    //数组转换成字符串用join()
        var str='abcdefg';
        var arr=str.split('');
        alert(arr.reverse().join(''));
    

      

      

  • 相关阅读:
    测试计划设计
    测试方案
    使用gulp构建自动化工作流
    ESLint--定制你的代码规则
    Node.js学习笔记(一):快速开始
    React-Native性能优化点
    ES6笔记(一):ES6所改良的javascript“缺陷”
    windows下React-native 环境搭建
    使用ssh连接gitHub
    javascript中的prototype和constructor
  • 原文地址:https://www.cnblogs.com/bravolove/p/5565358.html
Copyright © 2011-2022 走看看