jsday5数组

本文深入讲解了数组的基础概念、创建方式及各种操作方法,包括元素的增删改查、排序、遍历、转换等,帮助读者全面掌握数组的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组

为什么要学习数组

之前学习的数据类型,只能存储一个值(比如:Number/String。我们想存储班级中所有学生的姓名,此时该如何存储?

数组的概念

所谓数组,就是将多个元素按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

数组的定义

数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。

通过数组字面量创建数组


1、采用直接量创建

var arr = [];//创建一个空数组
var arr2 = [1,2,3];//创建一个有三个元素的数组
2、采用构造函数创建

a、var arr1 = new Array();//创建空数组
c、var arr3 =  new Array(5,4,3,2,1)//创建数组并初始化

获取数组元素

数组的下标取值范围为:0-arr.length-1

// 格式:数组名[下标]	下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red', 'green', 'blue'];
arr[0];	// red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined
arr[arr.length-1] ;//blue

数组的长度

length:获取数组内元素的个数

// 格式:数组名[下标]	下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red', 'green', 'blue'];
console.log(arr.length);

遍历数组

遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。

for循环和 for in循环

数组遍历的基本语法:

for(var i = 0; i < arr.length; i++) {
	// 数组遍历的固定结构
}

for (变量 in 对象)
{
    在此执行代码
}

数组中新增元素

数组中元素的修改

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";

数组元素的排序

sort():对数组的元素进行排序。

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [1, 4, 3,2];
// 查找元素  red
document.write(arr.sort());

数组元素的检测

arr instanceof Array
Array.isArray(arr);
检测arr是否为数组类型,是的话返回true,不是的话返回false

数组元素的查找

indexOf() 方法可返回某个指定的元素在数组中首次出现的位置,如果没有找到则返回-1

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 查找元素  red
console.log(arr.indexOf("red")); //0
console.log(arr.indexOf("green")); //1
console.log(arr.indexOf("blue")); //2
console.log(arr.indexOf("haha")); //-1
console.log(arr.indexOf("ooo")); //-1

数组的增删改查方法

push()向数组的末尾添加一个或更多元素。
unshift()向数组的开头添加一个或更多元素。

pop()删除数组的最后一个元素。
shift()删除数组的第一个元素。

splice()从数组中添加或删除元素。
在使用splice截取数组的时候,传入的参数不同,要注意需要取返回值,还是取改变后的原数组

indexOf()查找元素在数组中第一次出现的位置。
lastIndexOf()查找元素在数组中最后出现的位置。

数组转字符串

join()把数组的所有元素放入一个字符串。
toString()把数组转换为字符串。

数组的排序

sort()对数组的元素进行排序。

  1. 不传参数,将不会按照数值大小排序,按照字符编码ASCII的顺序进行排序

    var arr = [‘General’,‘Tom’,‘Bob’,‘John’,‘Army’];
    var resArr = arr.sort();
    console.log(resArr);//输出 [“Army”, “Bob”, “General”, “John”, “Tom”]

      var arr2 = [30,10,111,35,1899,50,45];
      var resArr2 = arr2.sort();
      console.log(resArr2);//输出   [10, 111, 1899, 30, 35, 45, 50]
    
  2. 传入参数,实现升序,降序

    var arr3 = [30,10,111,35,1899,50,45];
    arr3.sort(function(a,b){
    return a - b;
    })
    console.log(arr3);//输出 [10, 30, 35, 45, 50, 111, 1899]

       var arr4 = [30,10,111,35,1899,50,45];
       arr4.sort(function(a,b){
       	return b - a;
       })
       console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]
    
数组的拼接

concat()连接两个或更多的数组。

数组元素的去重

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [1, 3, 5,7,2,1,3,4,5,6];
// 定义一个空数组
var newArr = [];
// 循环遍历旧数组
for(var i =0;i<arr.length;i++){
  // 如果新数组内没有找到元素,就放入到新数组中
     if(newArr.indexOf(arr[i])==-1){
            newArr.push(arr[i]);
     }
}
console.log(newArr);

1.请用数组实现;已知歌唱选手的分数为90,70,80,60;95;85;70现要求出改选手的最后成绩,计算方式为去掉最该高分和最低分再求平均值在页面打印出最高分,最低分和平均分

 var arr = [90, 70, 80, 60, 95, 85, 70];
    arr.sort(function(a, b) {
        return a - b;
    });
    var zd = arr.pop; //尾部进行删除
    var zx = arr.shift; //头部进行删除

    // console.log("最高" + zd);
    // console.log("最高" + zx);
    var sum = 0;
    for (var i = 0; i < arr.length; i++) {
        sum += arr[i];

    }
    console.log("平均分" + sum / arr.length);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值