JavaScript-day04

目录

一、数组的创建

1.数组的创建1 var

2.数组的创建2  new Array()

二、数组包含的属性

三、数组的访问和修改

1.数组的访问

2.数组的修改

四、数组遍历

五、多维数组

六、最值

七、栈方法和队列方法

1.push

2.pop

3.unshift

4.shift

八、检索方法

1.includes(参1,参2)

2.indexOf(参1,参2)

九、数组转字符串

1.join('')

2.toString()

十、其他

1.isArray

2.splice(参1,参2,参3)  增  删  改

3.slice(参1,参2)   截取数组

4.reverse()  颠倒数组

5.concat  合并多个数组

十一、冒泡排序


一、数组的创建

  数组:由多个变量组合在一起

1.数组的创建1 var

  • 依然需要使用var关键字 来创建
  • 对于数组来说,可以添加任意的数据类型
var arr = ['a', 'b', 'c', 'd', 'e'];
var students = ["赵美丽", 28, true, "🚹", 145];


var arr1 = [];
        // 空数组
        console.log(typeof students);
        // object  复杂数据类型

2.数组的创建2  new Array()

  • 通过 new Array()  来创建数组  
  • 通过构造函数来创建
var arr2 = new Array();


var students = ["赵美丽", 28, true, "🚹", 145];
  • 直接量创建的数组可以在中间添加空值
  • 构造函数创建的数组不可以添加空值
  • 会直接报语法错误
var arr3 = [1, 2, , , 5, 6];

二、数组包含的属性

  1. 数组的索引下标 从0开始
  2. 长度 数组的值的个数 arr.length
var arr = [1, 2, 3, 'a', 'b'];
        // 0  1  2   3    4



console.log(arr.length);
  • 长度与下标的关系:长度-1 = 下标的最大值
  • 只要是数组 就一定会有长度

   数组长度 可以修改

  • 如果改后大于原本长度 会增加相对应的空值
  • 如果小于原本长度 会删除多余的值
 var arr = [1, 2, 3, 'a', 'b'];
        console.log(arr);
        console.log(arr.length);
        arr.length = 10;
        console.log(arr);
        console.log(arr.length);
        arr.length = 2;
        console.log(arr);
        console.log(arr.length);

三、数组的访问和修改

1.数组的访问

  • 通过索引下标 来访问数组中的元素
数组名称[索引下标]


var arr = ['liubang', 'wangwu', 'zhaoliu'];
console.log(arr[0]);
console.log(arr[2 + 1]);// undefined
console.log(arr[-1]); //undefined

2.数组的修改

  • 通过索引下标 来修改数组中的元素
  • 除了正整数的索引下标,其余负数、小数都不会改变长度length,但都可以打印出来
  • 数组长度只计算正整数
数组名称[索引下标] = 新值


var arr1 = [1, 2, 3];
arr[2] = "liubang";

四、数组遍历

  只要重复,就用for循环

var arr = ['刘邦', '张良', '韩信', '萧何', '刘备', '韩信', '萧何'];


 for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
        }

五、多维数组

  • 当访二维数组时,先访问第一个,再访问第二个
var arr = [
            [1, 2, 3],
            ["a", "b", "c"]
        ];


 for (var i = 0; i < arr.length; i++) {
            for (var j = 0; j < arr[i].length; j++) {
                console.log(arr[i][j]);
            }
        }

六、最值

  • 最值只针对纯数字的数组
var arr = [11, 52, 73, 44, 15];
        // 求最值的方法
        var max = arr[0];
        var min = arr[0];
        for (var i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }

            if (min > arr[i]) {
                min = arr[i];
            }
        }

        console.log(max);
        console.log(min);

七、栈方法和队列方法

      1. 方法的参数   2.方法的返回值  3.  是否改变原本的数组

1.push

(1)添加元素  在元素的末尾的位置添加,需要几个就可以添加几个

(2)参数 需要添加的元素  可以写多个,之间使用逗号分隔

(3)返回值  会返回一个添加完之后的数组的长度

(4)会改变原本的数组

var arr = [1, 2, 3, 4, 5];
arr.push('溜溜溜', '嘁嘁嘁', '叭叭叭');

2.pop

(1)删除元素  删除末尾位置的一个元素,只能删除一个

(2)参数  不需要参数

(3)返回值 返回删除的元素

(4)会改变原本的数组

var arr = [1, 2, 3, 4, 5];
arr.pop();

3.unshift

(1)添加元素  在元素的头部的位置添加 ,需要几个就可以添加几个

(2)参数 需要添加的元素  可以写多个,之间使用逗号分隔

(3)返回值 会返回一个添加完之后的数组的长度

(4)会改变原本的数组

var arr = [1, 2, 3, 4, 5];
arr.unshift('咯咯咯');

4.shift

(1)删除元素  删除头部的位置的一个元素 ,只能删除一个

(2)参数 不需要参数

(3)返回值 返回删除的元素

(4)会改变原本的数组

var arr = [1, 2, 3, 4, 5];
arr.shift();
  • 栈方法  先进后出
  • 队列方法 先进先出

八、检索方法

1.includes(参1,参2)

  • 用于 查找 是否包含某个元素 返回 布尔值  采用的是全等于
  • 参数  1.需要查找的元素   2.从哪个位置开始查找 索引下标
  • 如果超过最大的索引下标那么不会在检索了  -1 表示 为最后一个元素
  • 如果    arr.length + 查询的开始位置的数字   为 负数 那么就会从头开始检索
  • 返回值 布尔值 是否找到的结果
  • 不会改变原本的数组

var arr = [1, 2, 3, 4, 1];
console.log(arr.includes(9)); // false 没有找到
console.log(arr.includes('1')); //false 没有找到

2.indexOf(参1,参2)

  • 用于 查找 是否包含某个元素 返回 索引下标  第一次出现的位置 采用的是全等于
  • 参数   1.需要查找的元素  2从哪个位置开始查找 索引下标
  • 如果超过最大的索引下标那么不会在检索了  -1 表示 为最后一个元素
  • 返回值 索引下标  没有找到返回 -1
  • 不会改变原本的数组
var arr = [1, 2, 3, 4, 1];
console.log(arr.indexOf(99)); // -1 没有找到
console.log(arr.indexOf(1, 1)); // 4

九、数组转字符串

1.join('')

  • join 数组转字符串
  • 将数组里面的每一个元素分别拿出来 拼接到一个字符串中
  • 参数 每一个元素的分隔符
  • 返回值  返回由内容组成的字符串
  • 不会改变原数组
var arr = ['a', 'b', 'c'];
console.log(arr.join('+')); // a+b+c

2.toString()

  • 参数 没有参数
  • 返回值  返回由内容组成的字符串 中间使用逗号分隔
  • 不改变原数组
var arr = ['a', 'b', 'c'];
console.log(arr.toString('❤')); // a,b,c

十、其他

1.isArray

  • 判断传入的是否是一个数组  和isNaN 一样
  • 参数 就是需要检测的变量
  • 返回值  布尔值 是否是一个数组
  • 不改变原数组
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var arr1 = 3;
console.log(Array.isArray(arr1)); //false
console.log(Array.isArray(arr)); //true

2.splice(参1,参2,参3)  增  删  改

  • 增  删  改
  • 参数 参数1 需要增加 删除 修改的起始位置(必须的) 会到哪个地方
  • 参数2 需要删除的个数(可选)
  • 参数3 增加的元素(可选)
  • 返回值  被修改的内容
  • 改变原数组

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.splice(2, 0, "你好");
console.log(arr); //[1, 2, '你好', 3, 4, 5, 6, 7, 8, 9]

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.splice(1, 2);
console.log(arr);  //[1, 4, 5, 6, 7, 8, 9]

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.splice(2, 3, "三", "四", "五");
console.log(arr.splice(2, 3, "三", "四", "五")); //['三', '四', '五']
console.log(arr); //[1, 2, '三', '四', '五', 6, 7, 8, 9]

3.slice(参1,参2)   截取数组

  • slice  截取数组
  • 参数1 起始位置  参数2 结束位置 (不包含结束位置)
  • 如果参数只有开始 没有结束 那么会从开始一直到最后
  • 如果参数只有一个0  那么会原封不动的把数组打印一遍
  • 返回值  截取出来的数组
  • 不会改变原数组
var arr2 = [1, 2, 3, 4, 5];
console.log(arr2.slice(1, 3));  //[2, 3]
console.log(arr2.slice(1));  //[2, 3, 4, 5]
        console.log(arr2.slice(0));  //[1, 2, 3, 4, 5]
        console.log(arr2.slice(1, -2));  //[2, 3]
        arr2.slice(1, 4);
        console.log(arr2);  //[1, 2, 3, 4, 5]

4.reverse()  颠倒数组

  • reverse  颠倒数组
  • 参数  不需要
  • 返回值 颠倒之后的数组
  • 改变原数组
var arr3 = [1, 2, 3, 4, 5];
        console.log(arr3);  //[1, 2, 3, 4, 5]
        console.log(arr3.reverse());  //[5, 4, 3, 2, 1]

5.concat  合并多个数组

  • 将参数里面的数组合并到当前数组中
  • 返回合并之后的数组
  • 不会改变原数组
var arr6 = ['a', 'b'];
        var arr7 = [1, 2, 3];
        console.log(arr7.concat(arr6));  //[1, 2, 3, 'a', 'b']

十一、冒泡排序

相邻的两两比较大小 比较之后若需改变位置则直接交换

for (var i = 0; i < arr.length - 1; i++) {
    //所有的元素比较  到倒数第二个元素比完之后,最后一个元素不需要再次比较,故-1

            for (var j = 0; j < arr.length - i - 1; j++) {
                //比较完毕的元素不需要再比较,故-i
                //新比较元素不需要与已完成的元素比较,故-1

                if (arr[j] > arr[j + 1]) {
                    var temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    //解构,增加一个新的变量,交换数值

                }
            }
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值