JavaScript-数组-笔记

本文详细介绍了JavaScript中数组的基本概念、操作方法(如元素获取、添加、删除),以及计算数组总和、平均值、最大值,筛选元素和冒泡排序等实用技巧。
摘要由CSDN通过智能技术生成

1.定义数组
数组: 可以存储任意数据类型,元素之间使用英文逗号隔开
1)使用new关键字定义数组
var 变量名 = new Array() ;定义空数组
var 变量名 = new Array(数据1,数据2) ; 定义有元素的数组
注意: 如果Array() 小括号中只有一个整数 —— 指的是数组的长度,没有赋值的元素是undefined
2)使用字面量定义数组
var 变量名 = [];定义空数组
var 变量名 = [数据1,数据2]; 定义有元素的数组

2.数组下标操作元素
获取元素:使用下标(索引)来获取元素 数组名[下标] 如果下标超出:值是undefined
下标从0开始的 从左到右 不能为负数
添加数据 数组名[下标] = 值 空出来的位置:undefined
修改数据 数组名[下标] = 值
删除数据 delete 数组名[下标] 清空值,位置保留 变成undefined

3.获取数组的长度、添加元素
元素的个数——数组的长度 数组名.length
数组最后一个下标 = 数组的长度-1
在数组后边添加元素: 数组[数组.length] = 值

4.循环遍历数组
循环遍历数组,获取每一个元素
for(var i=0;i<数组的长度;i++){
              // 操作
}


5.添加元素、删除元素
数组添加元素:
1、数组[数组.length] = 值   在数组后边添加元素
2、数组名.push(值)  在数组后边添加元素
3、数组名.unshift(值)  在数组的前边添加
数组删除元素:
1、delete 数组名[下标] :删除值保留位置
2、数组名.pop()   删除数组的最后一个元素,不保留位置
3、数组名.shift()   删除数组的第一个元素,不保留位置

6.计算数组中数字的和、求平均值
var arr = [80,85,60,90];
// 计算平均分 = 总和/个数
var sum = 0;
// 循环遍历数组---获取到每一个元素-----求和
for(var i=0;i<arr.length;i++){
        sum += arr[i]; // 加的是数组的当前元素 不是下标i
}
console.log(`数组的和是${sum}`);
console.log(`数组的平均数是${sum/arr.length}`); // 数组中元素的个数就是数组的长度

7.求数组中元素的最大值
最大值:
循环遍历数组-----获取到每一个元素
假设第一个元素就是最大的,存储在max中 max的作用就是存储最大值
元素与max进行比较 如果当前元素大于max 就将当前元素赋值给max

var arr = [80, 85, 60, 90, 70];
// 定义变量max作为最大值 假设第一个元素的值就是最大的
var max = arr[0];
// 循环遍历数组
for(var i=0;i<arr.length;i++){
    // 元素与max进行比较 如果当前元素大于max 就将当前元素赋值给max
    if( arr[i] > max ){
         max = arr[i];
    }
}
// 循环结束后输出最大值
console.log(max);

8.筛选数组
筛选数组:在循环遍历数组的时候加上if判断

// 数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 将大于10的元素 添加到新数组中 输出新数组
var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr2 = []; // 定义空数组
// 循环遍历数组arr1 对元素进行判断筛选
for(var i=0;i<arr1.length;i++){
    // 如果arr1中当前元素大于10 将当前元素存储在arr2中
    if( arr1[i] > 10 ){
        arr2.push(arr1[i]);
    }
}
console.log(arr2);

9.冒泡排序
冒泡排序: 每轮能将一个元素排在指定的位置,每轮中都是从第一个元素开始与相邻元素进行比较
以从小到大为例
外层表示轮数 ---- 每轮可以将一个元素放到指定位置 5个元素就4轮即可 元素的个数减一
内层表示比较次数 (充当下标) ----- 轮数i + 次数j = 元素的个数 j = 元素的个数-i
如果 当前元素 大于后边的 需要交换位置(借助第三方变量)

var arr = [2, 4, 5, 3, 1];
for(var i=0;i<arr.length-1;i++){ // 外层表示轮数 小于 元素的个数减一
   for(var j=0; j<arr.length-i; j++){ // 内层表示比较次数 (充当下标) 小于 元素的个数-i
        // 当前元素 大于后边的 需要交换位置
        if(arr[j] > arr[j+1]){
               var temp;   // 借助第三方变量 交换位置
               temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
         }
     }
}
console.log(arr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程在手天下我有

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值