目录
一.前言
二.数组
1.认识
2.数组的声明
1.let arr = [1,2,3,4]
2.结合构造函数,创建数组
注意:
3.数组长度的设置和获取
注意
4.删除数组元素
5.清空数组
三.获取数组元素
获取数组元素的几种方法
1.使用方括号 [] 访问元素:
2.使用循环遍历数组:
3.使用数组迭代方法:
四.遍历数组(详解)
遍历数组常用的方法
1.for循环
2.for-in循环
3.forEach函数
案例
1.猜拳比大小(具体游戏名不清楚)
整体思路
代码讲解
2.随机生成20个100-200的整数,输出最大的那个整数及其位置
整体思路
代码讲解
完整代码
数组是一种数据结构,用于存储和组织多个相同类型的元素。它是编程语言中常见的基本数据结构之一。数组提供了一个连续的存储空间,其中每个元素都可以通过索引访问,索引通常从0开始。数组是一种常见又强大的数据结构,可以用于多种编程场景,例如存储一组数据、处理集合、排序和过滤等。了解数组的基本概念和使用方法对于进行编程任务非常重要。不同的编程语言可能有略微不同的语法和方法来操作数组。
数组
1.数组属于对象类型(复杂数据类型)
2.string , boolean ,number , undefind 属于基础类型(简单数据类型)
数组中可以存放任意数据类型的数据
1.let arr = [1,2,3,4]
let arr1 = [1,2,'封神榜','玉玲珑'] console.log(arr1)
2.结合构造函数,创建数组
let arr4 = new Array(4);
//使用Array()构造函数创建数组 let arr2 = new Array(); console.log(arr2);
注意:
使用 构造函数声明数组的时候,如果只有一个number的参数,则表示数组的长度,而数组内容为空,如果参数是两个及其以上的数字,则表示数组元素。
//如果Array的参数是一个数字类型数据,表示数组长度,该数组中的数据都是空 let arr4 = new Array(4); console.log(arr4);
如果是两个及其以上的数字,则表示数组中的元素
//如果是两个及其以上的数字,则表示数组中的元素 let arr5 = new Array(4,5); console.log(arr5);
使用 数组的length属性,既可以设置数组长度,也可以获取数组长度
let arr6 = [false,'灰太狼',23,'刘备']
console.log(arr6.length);//获取数组的长度,也就是数组中有几个元素,称为数组长度
形如 let arr2 = [,,,]
在计算该数组长度的时候最后一个逗号后面如果为空,则不计算入数组长度
/*
形如 let arr2 = [,,,]
在计算该数组长度的时候最后一个逗号后面如果为空,则不计算入数组
长度
*/
let arr1 = [,,,3,4]
let arr2 = [,,,]
console.log(arr1.length , arr2.length);
let arr3 = ['武松','武大郎','潘金莲','宋江']
//删除数组元素
arr6.length = 2
console.log(arr6);
//清空数组
arr6.length = 0
console.log(arr6);
数组当中的每一个元素,都对应一个数组下标(索引),下标从0开始计算,获取数组中的数据可以通过arr[下标]的方式获取
console.log(arr3[2]);
//随机获取下标,范围是[0,3]
let num = Math.floor(Math.random()*4)
console.log(arr3[num]);
1.使用方括号
[]
访问元素:使用方括号和索引来直接获取数组中的元素。例如,
array[0]
表示获取数组array
中的第一个元素,array[1]
表示获取第二个元素,依此类推。let array = [1, 2, 3, 4, 5]; let firstElement = array[0]; // 获取第一个元素,值为 1 let thirdElement = array[2]; // 获取第三个元素,值为 3
2.使用循环遍历数组:
可以使用循环(如
for
、while
)来迭代数组,从而逐个获取数组中的元素。通过循环的方式,可以获取数组的全部或部分元素。在 JavaScript 中let array = [1, 2, 3, 4, 5]; for (let i = 0; i < array.length; i++) { console.log(array[i]); // 逐个输出数组元素 }
3.使用数组迭代方法:
许多编程语言提供了内置的数组迭代方法(如
forEach()
、map()
、filter()
等),这些方法可以方便地遍历数组并对每个元素执行相应的操作。let array = [1, 2, 3, 4, 5]; array.forEach(function(element) { console.log(element); // 逐个输出数组元素 });
无论使用哪种方法,都可以根据需要获取数组中的元素。请记住,索引应该大于等于0并且小于数组的长度,否则会导致错误。确保在使用索引访问元素时遵循适当的边界条件和索引范围,以避免出现数组越界的问题。
遍历数组
1.for循环
//for循环 for (let i= 0; i < arr4.length; i++) { console.log(arr4[i]); document.write(arr4[i]+'
') } document.write('
')2.for-in循环
//for-in 循环,还可以循环对象 /* for (const key in arr4) { key 是循环的下标,key是变量可以随意命名 arr4 是要循环的对象 } */ for (const aa in arr4) { document.write(arr4[aa]+'
') } document.write('
')3.forEach函数
/* Es6 中推荐使用 数组的方法,forEach() 它里面传入的是一个函数,该函数具有一个形参 item , item 就是当前循环的数组元素 */ arr4.forEach(function(item){ document.write(item+'
') })
HTML部分定义了游戏的界面元素,包括标题、输入框和下拉选择框等。
JavaScript部分实现了游戏的逻辑。代码中定义了两个数组
arr1
和arr2
分别表示玩家A的手指数和所说的数的可能取值。在点击按钮时,代码生成两个随机数
sj1
和sj2
,并根据这两个随机数从arr1
和arr2
中选择对应的数值。然后根据玩家B所选择的手指数和所说的数,以及玩家A的手指数和所说的数,进行判断比较,判断胜负或平局,并通过alert
函数弹出结果。总体思路就是根据随机选择的手指数和所说的数,判断玩家A和玩家B的选择,并判断游戏的胜负关系。
猜数字
A
B
B的手指数:
B说的数:
这部分是HTML代码,它定义了一个简单的页面结构。包括一个标题(
),两个文本输入框(),两个下拉列表(
),一个按钮(
)。用户可通过输入文本框和选择下拉列表来参与猜数字游戏。
这部分是JavaScript代码,它实现了猜数字游戏的逻辑。让我们逐行解释它:
let arr1 = [0,5,10]
:定义了数组arr1
,其中包含了A可能选择的手指数。let arr2 = [0,5,10,15,20]
:定义了数组arr2
,其中包含了A可能说的数。let aa = document.getElementById('aa')
:获取ID为aa
的元素,即A的手指数输入框。let bb = document.getElementById('bb')
:获取ID为bb
的元素,即A说的数输入框。let cc = document.getElementById('cc')
:获取ID为cc
的元素,即B的手指数下拉列表。let dd = document.getElementById('dd')
:获取ID为dd
的元素,即B说的数下拉列表。let btn = document.getElementById('btn')
:获取ID为btn
的元素,即"Come On!"按钮。接下来是按钮的点击事件处理函数:
btn.onclick = function(){...}
:当按钮被点击时执行该函数。let sj1 = Math.floor(Math.random()*3)
:生成一个0到2之间的随机整数,用于确定A的实际手指数。let sj2 = Math.floor(Math.random()*(5-sj1)+sj1)
:生成一个在sj1和4之间的随机整数,用于确定A实际说的数。let c = cc.value-0
:获取B的手指数下拉列表选中的值,并转换为数字类型。let d = dd.value-0
:获取B说的数下拉列表选中的值,并转换为数字类型。aa.value = arr1[sj1]
:将A的手指数输入框的值设置为arr1中根据sj1确定的手指数。bb.value = arr2[sj2]
:将A说的数输入框的值设置为arr2中根据sj2确定的数。let a = aa.value-0
:将A的手指数转换为数字类型。let b = bb.value -0
:将A说的数转换为数字类型。根据A和B的手指数、说的数以及B的手指数与说的数之间的逻辑关系,进行对应的比较和判断,然后弹出相应的提示框。
if (a+c==d&&a+c!=b)
:如果A的手指数加上B的手指数等于B说的数,并且不等于A说的数,则弹出提示框显示"B赢"。else if(a+c==b&&a+c!=d)
:如果A的手指数加上B的手指数等于A说的数,并且不等于B说的数,则弹出提示框显示"A赢"。else
:其他情况下,即A和B说的数不一致或与手指数之和不符,则弹出提示框显示"平"。
创建一个长度为20的数组
arr
,用来存储随机生成的整数。初始化
max
变量为0,用来记录最大的整数。初始化
y
变量为0,用来记录最大整数的位置。使用
for
循环来生成20个随机整数,并将这些整数存储在数组arr
中。在生成过程中,使用内部的
for...in
循环来遍历数组arr
,并比较每个元素与当前的最大值max
。如果某个元素大于或等于max
,则更新max
的值为该元素,并记录其位置到y
变量中。循环结束后,对
y
值进行修正(加1),因为数组的索引是从0开始的,而位置是从1开始计数。最后,使用
document.write()
方法输出最大的整数和它的位置到网页中。
//随机生成20个100-200的整数,输出最大的那个整数及其位置
let arr = new Array(20); // 声明一个长度为20的数组arr
let max = 0; // 初始化最大值为0
let y = 0; // 初始化最大值位置为0
for (let i = 0; i < 20; i++) { // 循环20次
arr[i] = Math.floor(Math.random() * 101 + 100); // 生成100-200之间的随机整数,并赋值给数组arr的第i个元素
console.log(arr[i]); // 打印数组中的每个元素,用于查看生成的随机整数
for (const i in arr) { // 遍历数组arr
if (max <= arr[i]) { // 如果当前元素大于或等于最大值
max = arr[i]; // 更新最大值
y = Number(i); // 记录当前最大值的位置
}
}
}
y += 1; // 将位置加1,以符合人类的计数习惯(位置从1开始)
document.write('最大的数为:' + max); // 在网页中输出最大的整数
document.write('在第' + y + '位'); // 在网页中输出最大整数的位置
代码解释:
首先,声明了一个长度为20的数组arr,用于存储随机生成的整数。
接着,通过一个循环生成20个100到200之间的随机整数,并将它们赋值给数组arr的每个元素,并在控制台打印出来。
然后,通过嵌套的for...in循环遍历数组arr,寻找最大的整数及其位置。如果当前元素大于或等于最大值max,则更新最大值和位置。
最后,将位置加1,以符合人类的计数习惯,然后使用document.write()在网页中输出最大的整数和它的位置。
Document