JavaScript二维数组与函数

本文深入探讨了JavaScript中的二维数组,包括创建、访问、练习题解析,特别是二维数组的转置。此外,还详细讲解了函数的概念、定义、调用、分类,以及递归调用、闭包和立即调用的函数表达式等核心概念,同时提供了丰富的实践练习题,帮助读者巩固理解。
摘要由CSDN通过智能技术生成

目录

一、二维数组

1.创建方式

2.访问二维数组元素

3.练习

(1)求3*4的二维数组的每行元素之和

(2)求3*4的二维数组的每列元素之和

(3)求3*3的二维数组的对角线元素之和

4.二维数组的转置

二、函数

1.函数

2.定义

 3.调用

4.函数分类

(1)根据有无返回值分

(2)根据函数有无参数分

 练习:

(1)定义函数计算m~n的数据之和

(2)定义一个函数判断一个数是否是素数。输出100以内的所有素数

(3)定义一个函数判断其是否是'水仙花'数.输出1000以内的所有'水仙花'数

5.函数表达式

6.回调函数

7.函数的递归调用

(1)用递归解决问题的前提条件

(2)递归的过程

8、递归调用示例

(1)定义递归函数:输出斐波拉契数列的前20项

(2)用递归函数计算1+2+3+...+100的值

(3)定义递归函数打印一个整数的每一位数字

三、作用域的分类

1.作用域:作用范围

2.全局变量

3.局部变量

4.块级变量

5.作用域链

六、闭包函数

1.作用

七、立即调用的函数表达式

1.格式

2.练习题

定义函数,计算如下数列的前20项之和:2/1、3/2、5/3、8/5...


一、二维数组

通过两个下标(索引)来确定一个元素

1.创建方式

(1)使用new Array()创建

(2)通过'[]'创建

2.访问二维数组元素

数组名[下标1][下标2]

默认:按行优先,'下标1'是行下标,'下标2'是列下标

3.练习

(1)求3*4的二维数组的每行元素之和

        var arr=[
            [12,25,4,59],
            [11,33,41,26],
            [22,87,5,17]
        ]
        console.log(arr)

        for(var i=0;i<arr.length;i++){
            var sum = 0
            for(var j=0;j<arr[i].length;j++){
                sum += arr[i][j]
            }
            console.log('第'+(i+1)+'行元素之和='+sum)
        }

(2)求3*4的二维数组的每列元素之和

        var arr=[
            [12,25,4,59],
            [11,33,41,26],
            [22,87,5,17]
        ]
        console.log(arr)

        for(var i=0;i<arr[0].length;i++){//外循环:表示列下标
            var sum = 0
            for(var j=0;j<arr.length;j++){//内循环:表示行下标
                sum += arr[j][i]
            }
            console.log('第'+(i+1)+'列元素之和='+sum)
        } 

(3)求3*3的二维数组的对角线元素之和

        var arr=[
            [1,2,3],
            [4,5,6],
            [7,8,9]
        ]
        var s1=0,s2=0
        for(var i=0;i<arr.length;i++){
            s1 += arr[i][i];
            s2 += arr[i][arr.length-i-1]
        }
        console.log('左上-右下对角线元素和=',s1)
        console.log('左下-右上对角线元素和=',s2)

4.二维数组的转置

        var arr = [
            ['a','b','c',1],
            ['d','e','f',2],
            ['g','h','i',3],
            ['j','k','l',4]
        ]
        var res = []
        for(var i=0;i<arr.length;i++){//外循环:i是arr的列下标,也是res的行下标
            res[i] = []
            for(var j=0;j<arr.length;j++){//内循环:j是arr的行下标,也是res的列下标
                res[i][j] = arr[j][i]
            }
        }
        console.log(res)

二、函数

1.函数

可以实现某种功能的程序代码块(重复使用)

2.定义

  function 函数名([参数])
   {
      函数体语句
   }

(1)function是关键字

(2)'函数名'是标识符,要符合JavaScript的标识符的定义规则

(3)'参数':函数可以有参数也可以没有参数。无论函数是否有参数,函数名后的圆括号不能省略

(4)'{}':表示函数的作用范围,不能省略

function getSum(){
     var sum = 0
     for(var i=1;i<=100;i++){
         sum +=i
     }
     return sum
  }

 3.调用

函数名([参数])  

4.函数分类

(1)根据有无返回值分

A、有返回值函数

在函数中含有 return 语句。通常使用完成某种运算,并将运算结果返回

强调:return作用

a:返回值一个值

b:从当前函数中退出

在编程中,函数可以返回任何类型的数据,包括二维数组二维数组可以视为由行和列组成的表格数据结构,其中每一行是一个一维数组。在不同的编程语言中,返回二维数组函数的具体实现可能会有所不同,但基本概念是通用的。 以C语言为例,函数可以返回一个指向二维数组的指针。这里有一个简单的例子来说明如何定义和使用这样的函数: ```c int** create2DArray(int rows, int cols) { int i; // 分配行指针 int** array = (int**)malloc(rows * sizeof(int*)); if (array == NULL) { return NULL; // 如果内存分配失败,返回NULL } // 分配每一行的内存 for (i = 0; i < rows; i++) { array[i] = (int*)malloc(cols * sizeof(int)); if (array[i] == NULL) { // 如果分配失败,释放已分配的内存并返回NULL for (int j = 0; j < i; j++) { free(array[j]); } free(array); return NULL; } } return array; } ``` 这个函数`create2DArray`接受行数和列数作为参数,并返回一个指向新分配的二维数组的指针。调用者负责后续使用`free()`释放这块内存。 在JavaScript中,函数返回一个二维数组可能看起来像这样: ```javascript function create2DArray(rows, cols) { var array = new Array(rows); for (var i = 0; i < rows; i++) { array[i] = new Array(cols); } return array; } ``` 这个函数`create2DArray`创建并返回一个二维数组。 在Java中,返回值的类型是由函数签名决定的,例如: ```java public int[][] create2DArray(int rows, int cols) { int[][] array = new int[rows][cols]; return array; } ``` 这个Java方法`create2DArray`创建一个二维整型数组并返回它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值