几个数组练习题

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>
时间: 2024-12-21 06:10:59

几个数组练习题的相关文章

Java数组练习题小结

//2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在,则输出-1. 5. 给定一个数组,输出数组中的最大值和最小值 6. *给定一个数组,把这个数组中所有元素顺序进行颠倒. 7. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用冒泡排序对其按照从小到大的顺序排序,然后输出结果. 8. *使用第二种算法对数组进行排

js数组练习题

随机生成10个不重复的100以内的整数放进数组,并排序后进行打印 五个候选班长,20人投票(输入1-5来表示那个人)最后查看票数,看哪个人胜出

c# 数组练习题

1.根据班级人数创建一个数组,要求每个人的姓名都要放进去 Console.Write("请输入班级人数:"); int n = int.Parse(Console.ReadLine()); string[] name = new string[n]; for (int i = 0; i < n; i++) { Console.Write("请输入第{0}个人的姓名:", i + 1); name[i] = Console.ReadLine(); } Conso

指针与一维数组练习题01

编写一个程序,初始化一个double数组,然后把数组内容复制到另外两个数组(3个数组都需要在主程序中声明).制作第一份拷贝的函数使用数组符号.制作第二份拷贝的函数使用指针符号,并使用指针的增量操作.把目标数组名和要复制的元素数目做为参数传递给函数.也就是说,如果给定了下列声明,函数调用应该如下面所示: double  source [5]={1.1,  2.2,  3.3,  4.4,  5.5}; double  targetl[5]; double  target2 [5]; copy_ar

[2017-2018上 软件工程] 字符串、数组练习题

一. 二维数组 求一个3×4数组中大于等于平均值的所有数组元素的和,并统计满足条件的元素个数.本题中的平均值为小数,用到的其他所有变量均为整型. 输入格式: 输入3行4列的矩阵,每行第一个数前没有空格,每行的每个数之间各有一个空格. 输出格式: 在一行中按照"s=和,n=个数"的顺序输出,结果均原样输出,没有列宽控制. 输入样例: 1 4 7 8 2 1 4 2 1 2 3 4 输出样例: s=27,n=5 二. 数据结构 本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换

【数组练习题】

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title></head><body><script type="text/javascript" src="math.js"></script><script type="text/javas

数组练习题

一.矩阵相乘 1 public int[][] matrixMulti(int[][]a, int[][]b){ 2 int[][] answer = new int[a.length][b[0].length]; 3 4 if (a[0].length != b.length) 5 { 6 System.out.println("这两个矩阵不能相乘!"); 7 return answer; 8 } 9 10 11 for (int[] x: answer ) 12 { 13 for

后缀数组练习题

Milk Patterns Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17079   Accepted: 7553 Case Time Limit: 2000MS Description Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation,

数组练习题(错误版)

#include<stdio.h> int main() { int k, i, b, a, y, c, n; int num[i]; int sum = 0, cont = 0; scanf("%d", &i); for(y = 0; y < i; y++){ scanf("%d", &num[i]); } for(a = 0; a < i; a++){ for(b = 0; b < i; b++){ for(i =