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

  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))

猜你喜欢

转载自blog.csdn.net/qq_40281275/article/details/82354409