JS—函数相关例题解析

文章目录

  • 前言
  • 一、定义一个函数,计算从1到该数值的阶乘和
  • 二、任意数组排序
  • 三、交换两变量的值
  • 四、用户任意输入一个数字判断是否是素数
  • 五、实现能创建x行y列的表格输出到页面, x 与  y由用户输入指定。
  • 总结


一、定义一个函数,计算从1到该数值的阶乘和

1.解析:

  • 首先要搞清楚什么是阶乘——一个正整数的阶乘factorial)是所有小于及等于该数的正整数,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
  • 本题求解阶乘和,所以就要定义一个变量表示求和的结果
  • 在这里也需要两个循环,外层循环遍历从1到该数值的每个数值,内层循环求解每一个数值的阶乘。

2.js实现过程:

  <script>
        // 定义函数求解 一个数字的的阶乘和
        function sum(number) {
            var s = 0;
            for (var i = 1; i <= number; i++) {
                var a = 1;
                for (var j = 1; j <= i; j++) {
                    a *= j;
                }
                s += a;
            }
            return s;
        }
        var result = sum(4);
        console.log(result);
    </script>

3.运行结果:

以求出1-3的阶乘和为例:


二、任意数组排序

1.解析

  • 提示用户输入一个数组的长度
  • 填充数组中的值,直到满足数组的长度 ,要保证用户输入的值是数值
  • 将用户输入值组成的数组排序,并返回

2.js实现过程

 var size = window.prompt('请输入数组长度');
        function sortArray(length) {
            var arr = new Array();
            do {
                var number = window.prompt('请输入一个数字');
                if (isNaN(number)) {
                    alert('请重新输入一个数字');
                    continue;
                }
                number = number - 0;
                if (arr.indexOf(number) == -1) {
                    arr.push(number);
                }
            } while (arr.length < length);
            return arr.sort(function (a, b) {
                return a - b;
            })
        }
        var result = sortArray(size)
        console.log(result);

3.运行结果


 三、交换两变量的值

1.解析

  • 主要考察点就在于,如何借助第三方变量交换两变量的值,当然,不仅限于这一种方法。
  • 其次,当return 返回数据时,(关于函数的返回值情况在前文已经说明,在这里不再赘述)只能返回一个值,所以在这里采用了数组的方式返回数据

2.js实现过程

方法一:

   <script>

        // 定义变量接收用户输入的值
        var a = window.prompt("请输入一个值");
        var b = window.prompt("请输入一个值");

        // 方法一:
        // 创建名为 change 的函数
        function change(num1, num2) {
            var t = num1;
            num1 = num2;
            num2 = t;
         
            return [num1,num2];
        }

        // 调用名为change的函数
        console.log(change(a, b));

    
    </script>

方法二:

这种方法也是在不使用第三方变量的前提下,利用数组的形式交换两变量的值,本人觉得这个方法很好,在这里分享给大家。

   <script>

        // 定义变量接收用户输入的值
        var a = window.prompt("请输入一个值");
        var b = window.prompt("请输入一个值");


        // 方法二:
        function change2(x,y){
            x = [y,y=x][0];
            return [x,y];
        }
       console.log(change2(a,b));
    </script>

3.运行结果


四、用户任意输入一个数字判断是否是素数

1.解析

  • 首先要明白什么是素数,关于素数的判定在前文已经有过介绍,就是说,此数字除了1和它本身之外没有其他因数即为素数。
  • 依据上述只要判定从 2 开始到该数字-1时无因数即可。
  • 并且要考虑当用户输入1 的情况,此时则直接判定1不是一个素数。

2.js实现过程

<script>
        // 定义一个变量接收用户输入的数字
        var number = Number(window.prompt('请输入一个数字:'));

        // 创建名为 judge 的函数
        function judge(num) {
            if (isNaN(num)) {
                console.log('请重新输入一个数字');
            }
            if(num == 1){
                console.log('1不是一个素数');
                return;
            }
            var flag = true;
            for (var i = 2; i < num; i++) {
                if (num % i == 0) {
                    flag = false;
                    console.log(num+'不是一个素数');
                   break
                }
            }
            if (flag) {
                console.log(num + '是一个素数');
            }
        }

        // 调用函数  judge
        judge(number);
    </script>

3.运行结果

以判定9是否为素数:


五、实现能创建x行y列的表格输出到页面, x与y由用户输入指定。

1.解析

  • 首先定义变量获取用户输入数据,结合表格标签生成表即可

2.js实现过程

方法一:

<script>
        // 2.编写函数实现能创建x行y列的表格输出到页面,x,y由于用户输入
        var a = window.prompt('请输入行数:');
        var b = window.prompt('请输入列数:');
        document.write("<table border = '1px'>");
        function createForm(x, y) {

            for (var i = 1; i <= x; i++) {
                document.write('<tr>');
                for (var j = 1; j <= y; j++) {
                    document.write('<td>');
                    document.write('我是一个单元格');
                    document.write('</td>')
                }
                document.write('</tr>');
            }
            return;
        }
        createForm(a, b);
    </script>

方法二:

该方法主要是利用了字符串的拼接方式

  // 创建名为createTable 函数
        function createTable(row,col){
            var table = "<table border='1px' cellspacing='0' width='100px' height='100px'>"
                //外层循环控制行
                for(var i=1;i<=row;i++){
                    // 输出打印每一行
                    table+='<tr>';
                    // 内层循环控制lie 
                    for(var j=1;j<=col;j++){
                        table+='<td></td>';
                    }
                    table+='</tr>';
                }
                return table;
        }
        // 调用函数 createTable 
        var result = createTable(a,b);
       document.write(result);

3.运行结果

以创建一个三行两列的表格为例:

方法一结果图:

方法二结果图:


 

总结

以上就是今天所要分享的内容,依旧诚挚祝福屏幕前的你健康快乐、平安喜乐。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值