js 数组基础概念

数组:一组数据的集合,使用单个变量存储多个数据.
数组可以有两种方式创建:new关键字与字面量形式
数组元素可以为任何类型:字符串/数值/布尔值,每个数组元素使用英文逗号分隔.

<script>
        // 数组有两种方式创建
        // 1. 利用new关键字创建,这个不是很常用
        var arr = new Array[];

        // 2. 利用字面量进行创建数组,这个方式是最常用的
        var arr2 = [];

        // 3. 数组元素可以为任何类型:字符串/数值/布尔值,每个数组元素使用英文逗号分隔.
        var arr3 = ['张三丽','李四',123,false];
</script>

数组数据的获取:使用 变量名[索引号(或者下标)]进行索取,注意:索引号是从 0 开始计算的.

<script>
        // 获取数组里的数据格式: 变量名[索引号(或者下标)],索引号是从 0 开始计算的.
        var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期日'];
        console.log(arr[6]); //获取到的数据是 星期日
</script>

数组遍历:把数组的元素从头到尾走一遍,使用for循环的i作为数组的索引号,进行输出

<script>
        var arr=['张三','李四','王五','赵柳','田七'];
        for (var i = 0;i < 5;i++) { //数组的索引是从0开始的,这里的i也是从0开始,后面的条件是数组有多少个就写多少个就可以了
            console.log(arr[i]); //输出了所有的数组元素:张三/李四/王五/赵柳/田七
         }
</script>

数组的长度,也就是这个数组里面总共有多少个数据.使用 数组名.length获取.

<script>
        // 数组的长度,也就是这个数组里面总共有多少个数据.使用  数组名.length获取.
            var arr = ['马超','赵云','吕布','貂蝉','马云禄','诸葛亮','张飞','关于','刘备'];
            for (var i = 0;i<arr.length;i++) {  //使用arr.length获取数组的数量,这样就不需要去管数组的元素总共有多少个
                console.log('三国人物:' + arr[i]); 
            }
</script>

计算数组[2,6,1,7,4]的元素的和与平均值

<script>
	var arr2 = [2,6,1,7,4];
        var he = 0;
        for (var a = 0; a<arr2.length;a++) {
            he = he + arr2[a];
        }
    console.log(he);
    console.log(he / arr2.length); 
</script>

取数组[2,6,1,77,52,25,7]中的最大值

<script>
	var arr3 = [2,6,1,77,52,25,7];
        var max = arr3[0]; //把第一个数组的元素给一个变量
        for (var b = 0;b<arr3.length;b++) {
            if (arr3[b] > max) { //使用for循环,让这个变量与其他元素对比,如果其他的元素数字大于max
                max = arr3[b];  //那么把当前循环的数组元素赋值于max.以此类推,一直到循环结束.
            }
        }
        console.log(max); //输出得到的最大的数组元素值
</script>

同理:如果是取数组元素里的最小值,那么只需要让当前循环数组元素小于max.


数组[‘red’,‘green’,‘zhangsan’,‘李四’] ,输出red|green|zhangsan|李四 形式的字符串

<script>
        var arr = ['red','green','zhangsan','李四'];
        var str = '';
        for (var i = 0 ; i < arr.length;i++) {
            str = str + arr[i] + '|'; //设置空字符串与每次循环的数组元素进行连接
        }
        console.log(str);
</script>

新增数组元素的方式
两种方式:
1.通过length
2.通过定义新的数组索引进行追加

<script>
		// 新增数组元素,给定义好的数组增加元素,两种方式
        // 1.length方式新增元素
        var arr1 = ['q','w','e','r','t','y'];
        console.log(arr1.length);//现在他的长度为 6 
        arr1.length = 8;
        console.log(arr1.length);//指定数组的长度为8,输出的也是8;
        console.log(arr1); //输出结果: ["q", "w", "e", "r", "t", "y", empty × 2]
        //输出新增的2个元素,新增的数组的元素都是undefined
        console.log(arr1[6]);  //undefined
        console.log(arr1[7]);  //undefined

        //2.通过追加数组元素的方式增加元素
        var arr2 = ['q','w','e','r','t','y']; //现在总共6个元素,索引号最大是5
        arr2[7] = '张三李四'; //追加一个元素,标号是7,注意:如果实在现有数组追加索引号应该是6,这里空了一个
        console.log(arr2); //输出数组,结果:["q", "w", "e", "r", "t", "y", empty, "张三李四"],我们追加的元素已经在索引7上了,之前空出来的自动增加了一个.
        console.log(arr2[6]); //我们看一下自动追加的是什么值.结果:undefined,跟length追加的是一样的undefined
        arr2[0] = '魑魅魍魉'; //如果我们给现有的数组追加
        console.log(arr2); //结果是 ["魑魅魍魉", "w", "e", "r", "t", "y", empty, "张三李四"],他会替换之前的数组元素.
        arr2 = '试一下'; //如果直接给数组赋值
        console.log(arr2); //结果:试一下 ,他会直接替换整个数组,变成了新的值.
</script>

数组练习:新增一个数组,里面有10个数字:1-10

<script>
        // 新增一个数组,里面有10个数字:1-10
        var arr = []; //定义一个空的数组
        for (var i = 0;i<10;i++) {
            arr[i] = i + 1; //要求是1-10,所以给右侧i加1;为什么不给for循环的var i = 0直接改成1,因为数组的索引是从0开始的,如果他从1开始,那么前面会产生一个undefined;
            //第一次循环 i = 0 arr[0] = 0  
            //第二次循环 i = 1 arr[1] = 1 
            //第三次循环 i = 2 arr[2] = 2
            //第四次循环 i = 3 arr[3] = 3
            //可以理解为每次都会在数组arr新增一个arr[n] = n元素.
        }
        console.log(arr);
</script>

数组练习:将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新的数组

<script>
		// 将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新的数组
        var arr = [2,0,6,1,77,0,52,0,25,7,10];
        var arr2 = [];
        var a = 0; // 定义一个新的变量作为新数组的索引号计数器使用.
        for (var i = 0;i<arr.length;i++) {
            if (arr[i] >= 10) {
                arr2[a] = arr[i]; //arr2[0] = 77  arr2[1] = 52 .... 
                a++; //满足条件 ,a自增一次,变成1...以此类推.
            }
        }
        console.log(arr2);
        
        //方法2 使用length实现,这个方法确实没想到,不过好好琢磨了一下,确实是个好方法.
        var arr3 = [2,0,6,1,77,0,52,0,25,7,10];
        var arr4 = []; //空数组为空,那么他的长度length就是0;
        for (var b = 0; b < arr3.length ; b++) {
            if (arr3[b] >= 10 ) {
                arr4[arr4.length] = arr3[b];
            }
        }
        console.log(arr4);
</script>

练习:翻转数组

<script>
        // 将数组[2,0,6,1,77,0,52,0,25,7]数组翻转
        var arr=[2,0,6,1,77,0,52,0,25,7];
        var arr2 = [];
        for (var i = arr.length - 1;i >= 0 ; i--) { // 1. i=arr.length - 1; 把第一个数组的最后一个元素给新数组的第一个元素,元素下标是从0开始的,比length少一位所以减一 2. i>=0,当i--到0时,结束循环 3. arr的下标每循环一次i的值都会减少一,以达到10.9.8.7.6.5.4.3.2.1.0
            arr2[arr2.length] = arr[i];
        }
        console.log(arr2);
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值