• 几个数组练习题


    0-求数组最大值

        <script>
        var arr=new Array();
        arr[0]=22;
        arr[1]=555555;
        arr[2]=99999999;
        function GetMax(arr){
            var max=arr[0];
            for(var i=0;i<=arr.length-1;i++){
                if(arr[i]>max){
                max=arr[i];
                }
            }
            alert(max);
        }
        GetMax(arr);
        </script>

    1-将字符串数组元素反转                        //arr.reverse();

        <script>//①直接反转
        var arr=new Array();
        arr[0]=0;
        arr[1]=1;
        arr[2]=2;
        for(var i=0;i<=arr.length-1;i++){
        alert(arr[arr.length-1-i]);
        }
        </script>
        
        <script>//②两两对换,减少一半循环
        var arr=new Array();
        arr[0]='A';
        arr[1]='B';
        arr[2]='C';
        function Reverse(arr){
            for(var i = 0;i<arr.length/2;i++){
                var temp = arr[i];
                arr[i] = arr[arr.length-1-i];
                arr[arr.length-i-1] = temp;    
            }
            return arr;
        }
        alert(Reverse(arr));
        </script>

    2-将字符串数组输出为以“|”分割的形式            //arr.join("|");

       <script>
        var arr=new Array();
        arr[0]='1';
        arr[1]='2';
        arr[2]='3';
        function Join(arr){
            var s=arr[0];
            for(var i=1;i<=arr.length-1;i++){
            s+="|"+arr[i];
            }
            return s;
        }
        alert(Join(arr));
        </script>

    3-把[1, 3, 5, 7, 9]变换成整数13579            //arr.reduce(function(x,y){return 10*x+y;});   

        <script>
        var arr = [1, 2, 3, 4];
        var plus = function(arr){
            for(var i=0;i<arr.length-1;i++){
            arr[i+1]+=arr[i]*10;
            }
            return arr[arr.length-1];
        }
        alert(plus(arr));
        </script>

    4-把一个字符串“13579”先变成Array———[1, 3, 5, 7, 9],再将数组变换成整数13579。            //parseInt();

       <script>
        var str = "13579";
        function string2int(s) {
        return s.split('').map(function(x){        //用split()方法把一个 字符串 分割成 字符串数组。
        return x.charCodeAt(0) - '0'.charCodeAt(0);}).reduce(function(x, y){    //charCodeAt()方法返回 指定位置 的字符的 Unicode 编码
        return x*10+y; });
        }
        alert(string2int(str));
        </script>

    ***字符串方法 Method 描述:
        charAt() 返回指定索引位置的字符
        charCodeAt() 返回指定索引位置字符的 Unicode 值
        concat() 连接两个或多个字符串,返回连接后的字符串
        fromCharCode() 将字符转换为 Unicode 值
        indexOf() 返回字符串中检索指定字符第一次出现的位置
        lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
        localeCompare() 用本地特定的顺序来比较两个字符串
        match() 找到一个或多个正则表达式的匹配
        replace() 替换与正则表达式匹配的子串
        search() 检索与正则表达式相匹配的值
        slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
        split() 把字符串分割为子字符串数组
        substr() 从起始索引号提取字符串中指定数目的字符
        substring() 提取字符串中两个指定的索引号之间的字符
        toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
        toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
        toLowerCase() 把字符串转换为小写
        toString() 返回字符串对象值
        toUpperCase() 把字符串转换为大写
        trim() 移除字符串首尾空白
        valueOf() 返回某个字符串对象的原始值

    5-规范化数组,输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']

      <script>
        var arr = ['adam', 'LISA', 'barT'];
        alert(arr.map(function(str){
        return str[0].toUpperCase()+str.slice(1).toLowerCase();
        }));
        </script>

    6-找出连续n个合数(仅由存在性算法导出,结果非最优)

    <script>    
        function creat(n){
            var arr1 = [];
            var arr2 = [];
            for(var i = 1;i<=n+1;i++){
                arr1.push(i);
            }
            var k = arr1.reduce(function(x,y){     //k = 1*2*3*...*n*(n+1) = (n+1)!
                return x*y;
            });
            for(var i = 2;i<=n+1;i++){
                arr2.push(k+i);                    //连续n个合数(k+2),(k+3),(k+4),...,(k+n+1)
            }
            return arr2;
        }
        var arr = creat(10);
        alert(arr);
        </script>

    7-编写一个产生斐波那契数列的函数            //0 1 1 2 3 5 8 13 21 34 ...

        <script>
        function fib(max) {
            var t,a = 0,b = 1,arr = [0, 1];
            while (arr.length < max) {
                t = a + b;
                a = b;
                b = t;
                arr.push(t);
            }
            return arr;
        }
        alert(fib(10));                            // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
        </script>
  • 相关阅读:
    内网穿透(Frp)-拯救没有公网IP的你
    用Windows远程桌面连接树莓派的方法
    TensorFlow 1.9开始支持树莓派
    树莓派制作遥控小车-新手教程
    Layui 一个页面包含多个table时不展示分页条
    MVC 通过@符号把数据赋值给jQuery对象
    jQuery 批量为表单元素赋值
    layui分页组件,一直在调用方法的解决办法
    layui 表格复选框不居中解决办法
    JQuery 解决遮罩层下内容可以滚动问题
  • 原文地址:https://www.cnblogs.com/luoxiaoxi/p/4769399.html
Copyright © 2020-2023  润新知