欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js学习day3,数组与函数(上)

程序员文章站 2024-01-25 19:48:52
...
  1.  通过创建对象创建数组
        var array=new Array();
        console.log(array);
 如果数组()里面有一个数,那么这个数就是这个数组长度,多个数就为这个数组的值,而且里面的数为undefined
arr[10]这个数只是值而不是长度

 2.通过字面量创建数组
        var arr=[];//空数组
        console.log(arr);
 3.数组的长度:数组元素的个数
 4.数组可以存储不同类型的数据
    var arr=[1,2,"gg",undefined,null,true,new Object()];
    console.log(arr);
  5.改变数组长度
    var arr=[];
    arr[0]=0;
    console.log(arr[2]);
    document.write(arr[2]);
//函数定义:吧很多重复的代码封装起来,在需要的时候直接调用即可
//函数作用:代码的重用
//函数分为函数定义和函数调用,如果只定义,不调用,函数是不会执行的
//函数返回值:当函数调用需要的时候,只需要定义变量接收就行
/*函数分为:
    有参有返回  有参无返回    无参有返回   无参无返回*/
//形参和实参参数个数可以不相等
//函数没有返回值,但是接收了,结果为undefined,没有明确的返回值(return;)也为undefined
//return下面的代码不执行
//把数组用|分开
    var arr=["张三","李四","王五"];
    var str="";
    for (var i = 0;i < 2;i++) {
    str += arr[i] + "|";
    }
console.log(str+arr[arr.length-1]);     //arr[arr.length]最后一个元素


var arr=["张三","李四","王五"];
var str="";
for (var i = 1;i < 3;i++) {
    str += "|" +arr[i] ;
}
console.log(arr[0]+str);





//去掉数组中重复的0
    var arr=[1,3,0,5,9,0,0,8];
    var arr1 = [];            //空数组长度为0
    for (var i = 0;i < 8;i++) {
        if (arr[i] == 0) {
            continue;
        }
       arr1[arr1.length] = arr[i]
////       console.log(arr[i]);
    }
    console.log(arr1);





//冒泡排序
    var arr=[1,3,0,5,9,0,0,8];
    var temp;
        for (var i = 0;i < arr.length;i++) {
            for (var j = 0;j < arr.length - i - 1;j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr);






//提示用户输入班级人数,求总成绩,平均值,最高分,最低分
    var arr = [];
    var ptr = parseInt(prompt("请输入班级人数")) ;
////    var sum = 0,age,max =arr [0],min = arr[0];
    for (var i = 0;i < ptr;i++){
        arr[i] =parseInt( prompt("请输入第"+(i+1)+"成绩"));
        var sum = 0,age,max =arr [0],min = arr[0];
    sum += arr[i];
    if (arr[i] > max) {
        max = arr[i];
    } else if (arr[i] < min) {
        min = arr[i]
    }
}
    console.log(sum);
    console.log(sum / arr.length);
    console.log(max);
    console.log(min);






//求1-n之间所有数的和
var sum = 0
    function f1 (n) {
    for (var i = 1;i <= n;i++){
        sum += i
    }
        return sum;
}
f1 (prompt (""));
    console.log(sum);




//求n-m之间所有数的和
     function getSum (x,y) {
         var sum = 0;
         for (var i = x;i <= y;i++) {
            sum += i;
        }
        return sum;
    }
    n = parseInt( prompt("第一个"));
    m = parseInt( prompt("第二个"));
console.log (getSum(n,m));








//圆的面积
    var  s;
    function getS (r) {
        s = Math.PI*r*r
        return s;
    }
    n=parseInt (prompt ("半径"))
    console.log (getS (n));





//求两个数最值
    var arr = [1,34,79,39,100,100000]
    var min = arr[0],max = arr[0];
    for (var i = 0;i <arr.length;i++ ) {
        if (arr[i] > max) {
            max = arr[i];
        } else if (arr[i] < min) {
            min = arr[i];
        }
    }
    console.log (max,min);







//判断一个数素数
    function getPrime (num) {
        var flag = 1
        for (var i = 2; i < num; i++) {
            if (num % i == 0) {
                flag = 0;
                break;
            }
        }
        if (flag == 0) {
            console.log("不是素数");
        } else {
            console.log("是素数");
        }
    }
        x = parseInt (prompt ("请输入一个数"));
        getPrime (x);




//异步现象
    function getFact (n) {
    var fact = 1;
    for (var i = 1;i <= n;i++) {
        fact *= i;
    }
    return fact;
}
    function getSum (n) {
        var sum = 0;
        for (var i = 1; i <= n; i++) {
            sum += getFact(i);

        }
        return sum;
    }
    console.log( getSum (4));




    //求一组数最值与和用函数
//注释使光标直接到形参函数这里 /**回车
/**
 *给我一个数组,我返回一个数组(最大值,最小值,和)
 * @param array参数是一个数组
 * @returns {*[]}返回的是一个数组,第一个数返回最大值,第二个返回的是最小值,第三个返回的是和
 */
    function getArrayZuiZhi (array) {
        var sum = 0;
        max = array[0];
        min = array[0];
        for (var i = 0;i < array.length;i++) {
            sum += array[i];
//// /////////           if (arr [i] > max) {
//// /////////               max = arr[i];
////  ///////////          } else if (arr[i] < min) {
//// ///////////               min = arr[i];
//// ////////////           }
//// ///////       }
            if (array [i] > max) {           //若果这个数大于max,就将这个数给max
                max = array[i];
            } else if (array[i] < min) {     //若果这个数小于max,就将这个数给min
                min = array[i];
            }
        }
        return arr1 = [min,max,sum]   //用数组存三个返回值 ,返回的是一个数组
    }
//// ///////////////   var arr =[12,80,54,23,1,0];
    var arr1 =[];
//// ///////////////   var max = arr[0];
//// ///////////////   var min = arr[0] ;
////  ////////////////  console.log(getArrayZuiZhi(arr));
var resultArray = getArrayZuiZhi([12,80,54,23,1,0]);   //用变量存储返回调用的值
    console.log("最大值为"+resultArray[0]);
    console.log("最小值为"+resultArray[1]);
    console.log("和值为"+resultArray[2]);






通过函数求一组数据的和
    function getSum (array) {
        var sum = 0;
        for (var i = 0;i < array.length;i++) {
         sum += array[i];
        }
       return sum;   //没有返回值时,结果为undefined
    }
    console.log(getSum([1,2,3,4,5,6,7,8,9,10]));



//通过函数实现数组反转
    function getArray (array) {
        var temp;
        for (var i = 0;i < array.length / 2;i++) {     遍历数组前半元素与后面交换
                temp = array[i];                     //定义一个临时变量用来交换数组元素
                array[i] = array[array.length-i-1];
                array[array.length-i-1] = temp;
            }
        return array;
        }
    console.log(getArray([1,2,3,4,5,6,7,8,9]));



    //用函数实现冒泡排序
    function getMaopao (array) {
        for (var i = 0;i < array.length - 1;i++) {    //控制比较轮数:比元素个数-1
          for (var j = 0;j < array.length - i - 1;j++) {  //控制每一轮比较次数为:长度-轮数-1
                if (array[i] > array[i + 1]) {
                   var temp = array[i];            //定义一个临时变量用来交换数组元素
                   array[i] = array[i+1];
                    array[i+1] = temp;
                }
          }
        }
        return array;                         //返回一个数组
    }
   console.log(getMaopao([1,2,3,4,5,6,7,8,9]));   //将数组的值传到形参array数组中





//输入一个日期判断是否为闰年
var months = [31,28,31,30,31,30,31,31,30,31,30,31] ;  //定义一个数组存储每个月的天数
function getRunnian (year) {
     return ( year % 4 ==0 && year % 100 != 0 || year % 400 ==0) ; //返回的是Boolean类型
}
function getDays (year,month,day) {
    var days = day;        //定义变量存储对应的天数
    if (month == 1) {      //如果月份为1月份,那么就不算天数,直接返回days
//      var days = day;
        return days;
    }
    //代码到这里,说明month不是1月份
    for (var i = 0;i < month - 1;i++) {    //小于的是当月天数-1,既不是当月也不是months
        days += months[i];                  //因为for从0开始,所以month-1,如果是months的话,输出12个月了
    }
    if (getRunnian(year) && month > 2) {          //判断year是否是闰年并且是大于二
        days++;                                  //只有month大于二才考虑是否为闰年
    }
    return days;
}
console.log(getDays(2017,2,23))

 

 

 

相关标签: JavaScrip