Javascript数组和函数的使用

129 阅读4分钟

#认识数组

数组有两种的定义方式

var arr [];

var arr = new Array()

数组中可以存储那些数据

var arr = [1,2,"你好,世界",true]

数据之间一定要用逗号分隔,数组元素

数组索引号是从0开始的

console.log(arr[0])

#遍历数组

<script>
    var arr = ["red","green","blue"];
    console.log(arr.length)
    for(var i = 0; i < arr.length; i++){
        console.log(arr[i])
    }
</script>

#数组案例

<script>
    var sum = 0;
    var average = 0;
    var arr = [1,2,10,56,47]
    for(var i = 0; i < arr.length; i++){
        sum += arr[i]
    }求和
    average = sum / arr.length;求平均值
    console.log(average)
    console.log(average)
</script>

#求数组中最大的值

<script>
    var arr = [10,100,98,1024,8]
    var max = arr[0];
    for(var i = 1; i <= arr.length; i++){
        if(arr[i] > max){
            max = arr[i]
        }
    }
    console.log("数组中最大的值是" + max)
</script>

#数组转换成字符

<script>
    var arr = ["red","green","blue","yellow"]
    var str = '';
    for(var i = 0; i < arr.length; i++){
        str += arr[i] + "-"
    }
    console.log(str);
</script>

#数组新增元素

<script>
    var arr = ["red","green","blue"]
    console.log(arr.length);
    arr[3] = "pink";
    arr[0] = "红色";
    console.log(arr.length)
    console.log(arr)
</script>

#新增元素案例

<script>
    var arr = [];
    for(var i = 0; i < 100; i++){
        arr[i] = i;
    }
    console.log(arr)
</script>

#数组元素的筛选

<script>
    var arr = [2,0,6,1,77,0,53,25,7,0];
    var newArr = [];
    var j = 0;
    for(var i = 0; i < arr.length; i++){
        if(arr[i] >= 10){
            newArr[j++] = arr[i] 
        }
    }
    console.log(newArr)
</script>

#数组去重

<script>
    var arr = [2,0,6,1,77,0,52,0,25,7]
    var newArr = [];
    for(var i = 0; i < arr.length; i++){
        if(arr[i] != 0){
            newArr[newArr.length] = arr[i]
            }
        }
        newArr[newArr.length] = 0;
        console.log(newArr);
</script>

#数组中的元素翻转

<script>
    var arr = [1,2,3,4,5,6];
    var newArr = [];
    for(var i = arr.length - 1; i >= 0; i--){
        newArr[newArr.length] = arr[i]
    }
    console.log(newArr);
</script>

#冒泡算法

<script>
    var arr = [4,1,55,11,12,50,24]
    for(var i = 0; i <= arr.length - 1; i++){
        for(var j = 0; j <= arr.length - i - 1; j++){
            if(arr[j]  > arr[j + 1]){ 数组0 大于 数组1
                var temp = arr[j] 空变量 继承 数组0
                arr[j] = arr[j+1] 数组0 继承 数组1
                arr[j+1] = temp; 数组1 继承 数组0
            }
        }
    }
</script>

#函数

<script>
    函数是什么
    函数就是在它内部定义一些代码,聚合一下代码。
    封装一段可以被重复调用执行的代码块,通过代码块可以实现大量代码的重复使用
    function getSum(num1,num2){
        return num1 + num2
    }
    getSum(1,2)
    console.log(getSum(1, + 2))
</script>

#函数的使用

函数的使用分为两个步骤
// 1声明函数 2调用函数
// function 函数名(){
    // 函数体
// }
// function:函数

// 函数第二种声明的方式
// 匿名函数的声明
// var demo = function(){
// }

// 函数第三种声明的方式
// 使用new关键词进行声明函数
// var demo = new Function("")

// 函数声明的方式一般使用前两种

#封装一个函数

<script>
    第一步声明函数
    function getSum(){
        var sum = 0;
        for(var i = 1; i <= 100; i++){
        sum += i
        }
        console.log(sum)
    }
    
    第二步调用函数
    getSum();
</script>

#函数的参数

<script>
    当函数声明时,参数称为形参,而且使用变量的形式
    function add(num1,num2){
        console.log(num1 + num2)
    }
    
    在函数使用时,参数称为实参,可以使用变量或者字面量
    var a = 1;
    add(1,a);
</script>

#带参数的函数

<script>
    函数的名称一定要有意义
    以动词加名词的形式
    function getSums(start, end){
        var sum = 0;
        for(var i = start; i <= end; i++){
            sum += i;
        }
        consloe.log(sum
    }
    getSums(2,200)
</script>

#形参和实参个数匹配问题

<script>
    function getSum(num1, num2){
        console.log(num1 + num2)
    }
    
    形参和实参匹配的时候是正常显示的
    getSum(1, 2)
    
    形参比实参少的时候也是正常显示,但是多余的实参会自动删除
    getSum(1, 2,3)
    
    形参比实参多的时候会出现NaN
    getSum(1)
</script>

#return

<script>
    function add(num1, num2){
        return:返回的意思
        return num1 + num2;
    }
    add(1,2)
    console.log(add(1,2))
</script>

#返回两个数字中最大的值

<script>
    function getMax(num1, num2){
        if(num1 > num2){先做比较 数值1 大于 数值2
            return num1 返回数值1
        }else{
            return num2 如果数值1 没有大于 数值2 返回 数值2
        }
        
        三元表达式
        return num1>num2?num1:num2
    }
    console.log(getMax(20,100))
</script>

#求数组中最大的值

<script>
    var arr = [5, 100, 290, 45, 1, 2]
    function getArrMax(myarr){
        var max = arr[0];
        for(var i = 1; i <= myarr.length; i++){
            if(myarr[i] > max){
                max = myarr[i]
            }
        }
        return max;
    }
    
    调用时传递进去参数
    console.log(getArrMax(arr))
</script>