函数中的更多用法

arguments的使用
JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历
案例:
求任意个数的最大值:

//求一组数中的最大值
        function arr(){
            var max = arguments[0];
            console.log(arguments);
            for(var i=0;i<arguments.length;i++){
                if(max<arguments[i]){
                    max=arguments[i];
                }
                
            }
            document.write(max)
        }
        var a=prompt('请输入第一个数')
        var b=prompt('请输入第二个数')
        var c=prompt('请输入第三个数')
        var d=prompt('请输入第四个数')
        arr(parseFloat(a),parseFloat(b),parseFloat(c),parseFloat(d))

求任意数的和

function arr(){
            var sum=0;
            for(var i=0;i<arguments.length;i++){
                sum+=arguments[i]
            }
            console.log(sum);
        }
        var a=prompt('请输入第一个数')
        var b=prompt('请输入第二个数')
        var c=prompt('请输入第三个数')
        var d=prompt('请输入第四个数')
        arr(parseFloat(a),parseFloat(b),parseFloat(c),parseFloat(d))

案例:
求斐波那契数列Fibonacci中的第n个数是多少? 1 1 2 3 5 8 13 21…

function arr(n){
            var a=1;
            var b=1;
            var sum=0;
            for(var i=3;i<=n;i++){
                sum=a+b;
                a=b;
                b=sum;
            }
            console.log(sum);
        }
        var nn=prompt('请输入第N个值')
        arr(parseFloat(nn))

翻转数组,返回一个新数组

//反转数组(第一种方法)
        var arr1 = [1,2,3];
        var arr2 = reverse1(arr1);
        console.log(arr2);
        console.log(reverse1(arr1));
        //定义一个新数组,把老数组中的元素反向添加到新数组中
        function reverse1(array){
        var newArr = [];
         for(var i=array.length-1;i>=0;i--){
           newArr[newArr.length] = array[i];
        }   
       return newArr;
        }
        //反转数组(第二种方法)
        var arr = ['a',5,4,8,'ww']
        console.log(arr.reverse());

对数组排序,从大到小和从小到大;

 //对数组排序,从小到大
         var Arr=[13,7,10,76,97,100,35];
            var min;
            for(var i=0; i<Arr.length; i++){
                for(var j=i; j<Arr.length;j++){
                    if(Arr[i]>Arr[j]){
                      min=Arr[j];
                      Arr[j]=Arr[i];
                      Arr[i]=min;
                    }
                }
            }
            // document.write(Arr.toString()+"<br />");
            console.log(Arr);
    //对数组排序,从大到小
         var Arr=[13,7,10,76,97,100,35];
            var min;
            for(var i=0; i<Arr.length; i++){
                for(var j=i; j<Arr.length;j++){
                    if(Arr[i]<Arr[j]){
                      min=Arr[j];
                      Arr[j]=Arr[i];
                      Arr[i]=min;
                    }
                }
            }
            // document.write(Arr.toString()+"<br />");
            console.log(Arr);

输入一个年份,判断是否是闰年[闰年:能被4整数并且不能被100整数,或者能被400整数]

var sum = prompt('请输入年份')
        function arr(){
            if(sum%4==0 &&sum%100!=0 || sum%400==0){
                document.write('这是闰年')
            }else{
                document.write('这不是闰年')
            }
        }
        arr()

以3月5日为例,应该先把前两个月的加起来, 然后再加上5天即本月的第几天,特殊情况, 闰年且输入月份大于3时需考虑多加一天

var years=Number(prompt('请输入年'));
        var month=Number(prompt('请输入月'));
        var day=Number(prompt('请输入日'));
        function getDay(years, month , day){
            //天数
            var days=day;
            if (month == 1) {  //如果月份为一月那 直接输出天数 跳出循环
                return days;
            }
            //判断月数
            //不是一月的话累加之前的月数加上当月的天数   months
            var months=[31,28,31,30,31,30,31,31,30,31,30,31];
            for (var i=0;i<month-1;i++) {   //第几天和之前所有天数和
                days += months[i];
            }
            if (isRn(years)  && month>2) {   //判断输入的是否是闰年  与大于2月    是的天数加一  否则跳出循环
                days++;         //加一天
            }
            return days;    
        }
        function isRn(num) {    //判断是否是闰年【能被4整除且不能被100整除,或者能被400整除】
            return num % 4 == 0 && num % 100 != 0 || num % 400 == 0;
        }
        document.write('今天是今年的第'+getDay(years, month , day)+'天');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值