前端基础 - JavaScript (四)

数组

数组的概念

  1. 数组是可以将一组相关的数据一起存放,并且提供了一些方便访问以及获取的方式
  2. 数组的本质是一组数据的集合,里面的每个成员数据称为元素,一个数组里面可以存放任意多个以及任意类型的数据(一个JS数组中的元素类型可以不相同)

数组的创建

  1. 使用关键字new创建
  2. 直接使用[]进行创建
            var arr=["张三","男",23];
            console.log(arr);

数组的创建方式1里面new后面跟的是Array,添加数组元素可以使用数组索引的方式进行添加。而且使用[]这种方式创建数组的话可以直接将元素填写在[]中。

可以发现在js数组中每个元素的数据类型可以不一样

数组中的元素与元素之间通过逗号分隔

数组的元素操作

索引:数组中的一个表示元素位置的特殊序列号

可以通过“数组名[索引]”来获取某个元素,索引从0开始往后数,只能取正数

在对数组元素的访问、设置、修改都需要使用索引来完成。

            var arr=["张三","男",23];
            alert(arr[2]);

注意:如果访问数组时,使用的索引超出元素的索引对应范围,没有办法得到对应的数据因此返回的结果是undefined

不管数组中的元素发生怎样的改变,但是数组索引总是从0开始连续的

遍历数组

遍历:将数组的所有元素从头到尾依次访问一遍。类似于点名,绝不允许访问到同一个元素

因为数组的元素的索引是不会重复的,而且数组的索引是必然连续的,因此可以使用for循环语法对数组进行遍历。

如果要遍历数组,则需要明确数组中的元素个数。使用数组的属性length来获取数组的长度

“数组名.length”可以获取到数组的长度

注意:

  1. 数组的长度指的是数组的元素个数,和数组的索引没有任何关系
  2. 当数组中的元素个数发生改变时,length的值会跟着改变
  3. 数组的length属性可以被修改,如果length的值比原始数组的元素个数大,则使用空元素进行填充。如果length的值比原始数组的元素个数小,则将多余的元素从最后一个删掉,而且是不可恢复的删掉

添加新元素

数组中的元素添加方式

  1. 使用索引的方式进行添加元素

                var arr=["a","c","b","d"];
                arr[arr.length]="e";
                console.log(arr);
    

    使用索引添加数组,添加的元素索引值必须是原数组的长度

    如果使用的索引小于数组的长度,那就是修改元素了

    如果使用的索引超出数组的长度,那么中间多出来的元素位置使用空元素占着

  2. 使用push()函数进行添加

                var arr=["a","c","b","d"];
                arr.push("e");
                console.log(arr);
    

排序算法

排序:将数据按照指定的规律进行重新排列,正序排列(从小到大)

冒泡排序:N个数字来排序,两两比较小靠前,外层循环N-1,内层循环N-i-1

        window.onload=function(){
            var arr=[18,9,21,47,15,23,11];
            // 外层循环控制的是比较的轮数
            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]){
                        var temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
            console.log(arr);
        }

排序算法的稳定性:例如一组数进行排序[18,12,5,8,18,5,12],这组数里面有一些重复的元素出现,对于这种现象,一般两个相同的数在排序比较时,它们两个数比较完不会更换位置,原数组中相同的数在排序比较完之后不会更改先后顺序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值