JavaScript 数组

1. 数组的含义

数组就是一组数组的集合,在内存中(堆内存)表现为一段连续的内存地址。
数组是一个变量, 分配一串连续的地址空间。
数组可以存储多个数据,并且可以是任意数据类型。
创建数组最根本目的:就是为了保存更多的数据。

2. 数组的声明

1、声明数组的关键字有letvarnew三种:
	<script>
        // 使用var关键字声明数组  arr是创建的数值名
        var arr = [];
        //  使用let关键字声明数组  arr是创建的数值名
        let arr = [];
        //  使用new关键字声明数组  arr是创建的数值名
        let arr = new Array();
	</script>
	
2、声明数组的方式有以下两种:
	<script>
 	    // 声明一个空数组
        var arr = [];
        let arr = [];
        let arr = new Array();

        // 字面量创建的数组里面只有一个数字时,表示该数组长度为1
        let arr = [66];
        // new关键字创建的数组里面只有一个数字时,表示该数组的长度,所有值都为空
        let arr = new Array(66);
	 </script>

3、注意:
(1)数组的长度是可以变化的,使用arr.length;就可以获取到数组的长度。
(2)数组中存的数据,称为数组元素,通过arr[下标];就可以获取。数组下标是从0开始计算的。
(3)字面量和new关键字创建的区别是:new 的形式与字面量创建类似,可以是将值放进数组中;但是不同的是:当new Array()中只有一个数字时,表示的是数组的长度,里面每一个值为空
(4letvar声明的区别:
let声明范围是块作用域,var声明的范围是函数作用域。
let不允许同一个块作用域中重复声明变量。
let变量引用之前需要先声明,类似C++函数调用之前要先声明。而var则会被提升,无视声明顺序。
var在全局作用域声明的变量会成为window对象的属性,而let不会。

3. 数组的方法

(1)获取数组长度
语法格式:数组名.length
代码示例:
	 <script>
        let arr = [66,1,3,567,543,3,56];
        console.log(arr.length);   //输出的结果为7
     </script>
(2)获取数组元素
语法格式:数组名[下标]
代码示例:
 	<script>
        let arr = ['pink','blue','yellow','red','green'];
        console.log(arr[3]);    //输出的结果为red
    </script>
(3)添加数组元素
语法格式:数组名.push(添加的元素)       //添加到数组的末尾
代码示例:
 	 <script>
        let arr = ['apple', 'peach', 'pear', 'banana'];
        // 添加的元素之间用逗号隔开
        arr.push('西瓜', '草莓', 123,'mkeshfk');
        console.log(arr);
     </script>


语法格式:数组名.unshift(添加的元素)    //添加到数组的前面
代码示例:
 <script>
        let arr = ['apple', 'peach', 'pear', 'banana'];
        // 添加的元素可以是数字、字符、中文英文字符串
        arr.unshift('西瓜', '草莓', 123, 'mkeshfk');
        console.log(arr);
    </script>

注意:添加数组元素时,数组中元素的下标会发生变化。
(4)删除数组元素
语法格式:数组名.pop()       //删除数组末尾的一个元素
代码示例:
	<script>
        let arr = [12, 34, 67, 89, 23, 57];
        arr.pop();
        console.log(arr);
     </script>


语法格式:数组名.shift()     //删除数组开头的第一个元素
代码示例:
 	<script>
        let arr = [12, 34, 67, 89, 23, 57];
        arr.shift();
        console.log(arr);
    </script>

注意:删除数组元素时,数组中元素的下标会发生变化。
(5)删除、添加、修改数组元素
语法格式:数组名.splice(下标,删除的长度,添加的值)
         删除操作: 数组名.splice(下标,删除的长度)
      	 添加操作: 数组名.splice(下标,0,添加的值)
     	 修改操作:数组名.splice(下标,删除的长度,添加的值)
代码示例:
 	 <script>
        let arr = ['name', 'sex', 'age', 'class'];
        
        // 删除操作
        arr.splice(2, 1);    //只删除了age这一个元素
        arr.splice(2, 2);    //删除了从age开始的后两个元素
        console.log(arr);

        // 添加操作
        arr.splice(3, 0, 'id');   //在arr[3]的位置添加了id这个元素
        console.log(arr);

        // 修改操作
        arr.splice(2,1,'hobby');    // 将原本arr[2]位置的元素删除,然后将hobby放在它的位置上
        console.log(arr);
  	  </script>
(6)合并数组元素
语法格式:数组名1.concat(数组名2)
注意: 返回一个新数组 ,不会改变原数组。
代码示例:
	 <script>
        let arr1 = ['name', 'sex', 'age', 'class'];
        let arr2 = ['jie', '20', 'girl', '321']
        // 定义一个新数组来接收合并后的数组
        let newArr = arr1.concat(arr2);
        console.log(newArr);
     </script>
(7)截取数组元素
语法格式: 数组名.slice(起始下标(要被截取),结束下标(不被截取))
注意:不会改变原数组,会将截取的元素以数组的形式返回。
代码示例:
 	 <script>
        let arr = ['mi', 'hong', 'ming', 'wei','jie'];
        // 截取是从arr[1]开始到arr[3]结束
        let newArr = arr.slice(1,3);
        // 没有改变原数组长度
        console.log(arr);
        // 截取的元素形成新的数组
        console.log(newArr);
     </script>
(8)反转数组元素
语法格式:数组名.reverse()
注意:会改变原始数组。
代码示例:
	 <script>
        let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        arr.reverse();
        console.log(arr);
     </script>
(9)连接数组元素
语法格式:  数组名.join(分隔符)
注意:将数组中的元素以逗号或者设置的分隔符连接成一个字符串,并返回。
代码示例:
方法一:
 	<script>
        let arr = ['h', 'e', 'l', 'l', 'o'];
        console.log(arr.join("-"));
    </script>
    
方法二:
 	<script>
        let arr = ['h', 'e', 'l', 'l', 'o'];
        let newArr = arr.join("-")
        console.log(newArr);
    </script>
(10)查询数组元素
语法格式: 数组名.indexOf()
注意:给定值是否在数组中,在返回对应的下标,不在返回-1。
代码示例:
 <script>
        let arr = ['h', 'e', 'l', 'l', 'o'];
        console.log(arr.indexOf('e'));     //返回下标为1
        console.log(arr.indexOf('l'));     //返回下标为2  
        // 数组中含有相同元素时,只返回查询到的第一个元素下标
    </script>


语法格式:数组名.includes()
注意:给定值是否在数组中,在返回true,不在返回false。
代码示例:
	 <script>
        let arr = ['h', 'e', 'l', 'l', 'o'];
        console.log(arr.includes('e'));     //返回true
        console.log(arr.includes('w'));     //返回false
     </script>
(11)排序数组元素
语法格式:数组名.sort()
注意: 默认sort 是字符串排序;数字大小排序,需要写一个functionsort(function(a,b){
         return a-b;   //升序
      })

      sort(function(a,b){
         return b-a;   //降序
      })
      
代码示例:
    <script>
        let arr = [1, 3, 5, 2, 9, 6, 7];
        // 默认是从小到大排序
        arr.sort();
        console.log(arr);
    </script>

4. 数组的应用

1)求数组中最大的数
      <script>
        let arr = [1, 23, 5, 12, 9, 36, 7];
        let max = arr[0];

        // 最大值
        for (let i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        // 结果
        console.log(max);   // 返回值为36
      </script>2)求数组中最小的数
	 <script>
        let arr = [1, 23, 5, 12, 9, 36, 7];
        let min = arr[0];

        // 最小值
        for (let i = 1; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        // 结果
        console.log(min);   // 返回值为1
    </script>3)数组中元素去重
    <script>
      // 数组中多个元素相同时
        let arr = [12, 23, 4, 5, 12,23, 12, 12, 34,23];
        for (let i = 1; i < arr.length; i++) {
            for (let j = 0; j < i ; j++) {
                if (arr[i] == arr[j]) {
                    arr.splice(i, 1);
                    i--;
                    break;
                }
            }
        }
        document.write(arr);
    </script>

推荐:https://blog.csdn.net/qq_45799465/article/details/122892209

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值