目录
一.前言
二.数组
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.认识
数组
1.数组属于对象类型(复杂数据类型)
2.string , boolean ,number , undefind 属于基础类型(简单数据类型)
数组中可以存放任意数据类型的数据
2.数组的声明
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);
3.数组长度的设置和获取
使用 数组的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 = ['武松','武大郎','潘金莲','宋江']
4.删除数组元素
//删除数组元素arr6.length = 2console.log(arr6);
5.清空数组
//清空数组arr6.length = 0console.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]+'<br>')}document.write('<hr>')
2.for-in循环
//for-in 循环,还可以循环对象/*for (const key in arr4) {key 是循环的下标,key是变量可以随意命名arr4 是要循环的对象}*/for (const aa in arr4) {document.write(arr4[aa]+'<br>')}document.write('<hr>')
3.forEach函数
/*Es6 中推荐使用 数组的方法,forEach()它里面传入的是一个函数,该函数具有一个形参 item , item 就是当前循环的数组元素*/arr4.forEach(function(item){document.write(item+'<br>')})
案例
1.猜拳比大小(具体游戏名不清楚)
整体思路
HTML部分定义了游戏的界面元素,包括标题、输入框和下拉选择框等。
JavaScript部分实现了游戏的逻辑。代码中定义了两个数组
arr1
和arr2
分别表示玩家A的手指数和所说的数的可能取值。在点击按钮时,代码生成两个随机数
sj1
和sj2
,并根据这两个随机数从arr1
和arr2
中选择对应的数值。然后根据玩家B所选择的手指数和所说的数,以及玩家A的手指数和所说的数,进行判断比较,判断胜负或平局,并通过alert
函数弹出结果。总体思路就是根据随机选择的手指数和所说的数,判断玩家A和玩家B的选择,并判断游戏的胜负关系。
代码讲解
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>猜数字</title>
</head>
<body><h3>A</h3><input type="text" value="" id="aa" placeholder="A的手指数"><input type="text" value="" id="bb" placeholder="A说的数"><h3>B</h3>B的手指数:<select name="" id="cc"><option value="0">0</option><option value="5">5</option><option value="10">10</option></select>B说的数:<select name="" id="dd"><option value="0">0</option><option value="5">5</option><option value="10">10</option><option value="5">15</option><option value="20">20</option></select> <br><br><button id="btn">Come On!</button>
</body>
</html>
这部分是HTML代码,它定义了一个简单的页面结构。包括一个标题(<title>
),两个文本输入框(<input>
),两个下拉列表(<select>
),一个按钮(<button>
)。用户可通过输入文本框和选择下拉列表来参与猜数字游戏。
<script>//A的手指数let arr1 = [0,5,10]//A说的数let arr2 = [0,5,10,15,20]let aa = document.getElementById('aa')let bb = document.getElementById('bb')let cc = document.getElementById('cc')let dd = document.getElementById('dd')let btn = document.getElementById('btn')btn.onclick = function(){let sj1 = Math.floor(Math.random()*3)let sj2 = Math.floor(Math.random()*(5-sj1)+sj1)let c = cc.value-0let d = dd.value-0aa.value = arr1[sj1]bb.value = arr2[sj2] ;let a = aa.value-0let b = bb.value -0if (a+c==d&&a+c!=b) {alert('B赢')}else if(a+c==b&&a+c!=d){alert('A赢')}else{alert('平')}}
</script>
这部分是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说的数不一致或与手指数之和不符,则弹出提示框显示"平"。
2.随机生成20个100-200的整数,输出最大的那个整数及其位置
整体思路
创建一个长度为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; // 初始化最大值位置为0for (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) { // 遍历数组arrif (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()在网页中输出最大的整数和它的位置。
完整代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
</html>
<script>//随机生成20个100-200的整数,输出最大的那个整数及其位置let arr = new Array(20);let max=0let y = 0for (let i = 0; i <20; i++) {arr[i]= Math.floor(Math.random()*101+100)console.log(arr[i]);for (const i in arr) {if (max<=arr[i]) {max = arr[i]y = Number(i)}} }y += 1document.write('最大的数为:'+max)document.write('在第'+y+'位')
</script>