JS基础03之数组

 2023-09-07 阅读 17 评论 0

摘要:1. 数组的基本认识 数组:一组有序的数据,可以一次性存储多个数据,可以在数组中存放任意的数据,并且数组的长度可以动态调整 创建数组: * 1.字面量的方式: var 变量名=[]; 空数组 * 2.通过构造函数创建数组 * var 数组名=new Array

1. 数组的基本认识

数组:一组有序的数据,可以一次性存储多个数据,可以在数组中存放任意的数据,并且数组的长度可以动态调整

  • 创建数组:
    * 1.字面量的方式: var 变量名=[]; 空数组
    * 2.通过构造函数创建数组
    * var 数组名=new Array();
    * 数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来,如果是一个空数组,就什么都不显示
    *
    * var 数组名=new Array(数字); 括号中只有一个数字时,这个数字表示数组的长度
    * 如果一个数组如果没有数据,但是有长度,这个数组中的数就是undefined类型的
    *
    * var arr = new Array(1,2,3,4,5); 括号中有多个值,表示这个数组中有数据了,这个数组的长度就是这些数据的个数

  • 数组中每个元素都有自己的一个标号(索引),数组的索引是从0开始的: arr[0]里面存储的是1,arr[1]==2, 以此类推

  • 如何设置数组中某个位置的值? arr[0]=10; 这个arr数组中的第一个元素值就变成了10

    • 注意:无论使用哪种方式创建数组,如果有长度,则默认就是undefined类型的
  • 数组的索引与数组长度之间的关系:数组的索引是从 0 到 (长度-1); 长度减1就是最大的索引值

js 数组转字符串。需要注意的点

  1. 数组中存储的数据类型可以是不同的
var arr2 = [10, 'hahahaaha', null, undefined, true, new Object()];
  1. 数组的长度是可以改变的
  2. 过索引来设置数组中元素的值
  3. 通过索引来获取数组中的值
  4. 创建数组:
    • var arr4 = new Array();
var arr5 = new Array(5);  // 数组长度为5
var arr6 = new Array(1, 2, 3, 4, 5); // 数组元素为1,2,3,4,5
  1. for循环遍历数组
		var arr = [10, 20, 30, 40, 50];for (var i = 0; i <= arr.length - 1; i++) {console.log(arr[i]);  // 注意:i是数组的索引值,从0开始,一直到(数组的长度-1)结束,遍历整个数组}

2. 数组的案例

案例1: 提示用户输入班级人数,求总成绩,平均值,最高分,最低分

		//提示用户输入人数,并转成数字类型var perCount = parseInt(prompt('请输入班级人数'));//定义数组存储班级中每一个人的成绩var perScores = [];//以循环的方式录入每一个人的成绩for (var i = 0; i < perCount; i++) {//把每个人的成绩存储到数组中perScores[perScores.length] = parseInt(prompt('请输入第' + (i + 1) + '个同学的成绩'));}//成绩都已经存储在了数组perScores中,求总成绩var sum = 0;var max = perScores[0];//求最大值var min = perScores[0];//求最小值for (var j = 0; j < perScores.length - 1; j++) {sum += perScores[j];//求最大值if (max < perScores[j]) {max = perScores[j];}//求最小值if (min > perScores[j]) {min = perScores[j];}}//求平均值var avg = sum / perScores.length;console.log('和为' + sum);console.log('平均值是:' + avg);console.log('最大值是:' + max);console.log('最小值是:' + min);

案例2: 反转数组: 把数组中的数据位置调换
// 一个长度是length的数组,如果要实现数组反转,主要是遵循以下交换规律:
//第0个元素与第length-1-0个元素互换
//第1个元素与第length-1-1个元素互换
//第2个元素与第length-1-2个元素互换
//第3个元素与第length-1-3个元素互换
//第4个元素与第length-1-4个元素互换
// 依次类推, 交换的次数是: length/2 次

		var arr=[1,2,3,4,5];//设置一个循环: 该循环的目的是控制循环的次数for (var i = 0; i < arr.length / 2; i++){//先把数组中第一个元素的值放在第三方变量中var temp = arr[i];arr[i] = arr[arr.length - 1 - i];arr[arr.length - 1 - i] = temp;}console.log(arr);

案例2:去掉数组中重复的0

		//把新数组的长度作为下标使用,数组的长度是可以改变的var arr = [10,0,20,0,30,0,40,0,50];var newArr = [];  //创建一个新的空数组,用来存放第一个数组中所有非0的数字for (var j = 0; j < arr.length; j++){if (arr[j] != 0){newArr[newArr.length] = arr[j];  //注意:新创建的数组长度是可以改变的,每循环一次,它的长度就 +1}}console.log(newArr);

案例3:把数组中每个元素用竖线 | 拼接到一起产生一个字符串并输出

		var names = ['卡卡西', '佐助', '鸣人', '大蛇丸', '雏田', '小苏', '凤姐', '黑崎一护'];var str = '';for (var i = 0; i < names.length - 1; i++) {str += names[i] + '|';}console.log(str + names[names.length - 1]);

js数组方法。案例4:冒泡排序
重点中的重点!!! 一定要会!!!

		//实现从小到大的排列顺序var arr = [23, 12, 10, 30, 40, 2, 1]; //这个需要排序的数组的长度是7//循环控制比较次数: 如果数组的长度是n ,则需要经过n-1轮的比较for (var i = 0; i < arr.length - 1; i++) {//内循环控制每一轮循环中比较的次数for (var j = 0; j <= arr.length - 1 - i; j++) {if (arr[j] > arr[j + 1]) {  //如果要实现 从大到小的排序,  这里就变成 <var temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}console.log(arr);

3. break与continue

break关键字: 立即跳出当前所在的循环。
continue关键字: 跳出当前循环,继续进行下一次循环
练习1:找到100-200之间,第一个能够被7整除的数字

		for (var a = 100; a <= 200; a++) {if (a % 7 == 0) {document.write(a);break;}}

练习2: 求100-200之间所有奇数的和,使用continue

		var odd = 0;for (var b = 100; b <= 200; b++){//判断是不是偶数,如果是偶数,就跳过这个数字if (b % 2 == 0){continue;}odd += b;}document.write(odd);

练习3:求整数1-100的累加值,但要求碰到个位为3的数则停止累加;

		var sum = 0;for (var i = 1; i <= 100; i++) {if (i % 10 == 3) {break;}sum += i;}document.write(sum);

练习4:求100-200的累加值,但要求跳过所有个位数为3的数

		var he = 0;var j = 1;while(j <= 200){if (j%3 == 0){//满足if的条件,说明这个数的个位数是3,这个值不要,跳过j++;  //注意,这里的自增不能掉continue;}he += j;j++;}document.write(he);

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/13160.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息