pycharm定义空的二维数组_为什么使用数组?

为什么使用数组?

问题引入

王大爷有6只乌龟,它们的体重分别是3kg,5kg,1kg,

3.4kg,2kg,50kg 。请问这六只乌龟的总体重是少?

平均体重是多少?

不使用数组:

使用数组:

d52b709952d1f49a23853f4b3ff7a6c9.png

一、数组的概念

1.1什么是数组

数组就是按照一定的顺序排列的一组值,每个值都有自己的编号,编号(下标)从0开始,整个数组用可以用[]表示。

80b90329d2558bfa3fa80e3be125fda6.png

1.2数组的定义

定义数组的方式:

方式1:中括号[]

arr = [数组的值1,数组的值2,数组的值3,....];

方式2:使用new Array()

本质上,数组是对象类型的一种特殊表现形式。因此创建的时候我们可以使用new方式来创建。

typeof运算符会返回数组的类型是object。

arr = new Array(数组的值1,数组的值2,数组的值3,....);

1.3数组的访问

数组的下标是从0开始,

arr[0]:第一个数组元素

arr[1]:第二个数组元素

arr[2]:第三个数组元素

d4b9de28cd8453a06dffddf9dd8d508c.png

1.4数组的操作

可以是不同的数据类型

添加,修改,删除,查看操作

c16df8fb5750eba457c861fc777c1577.png

1.5数组的分类

按维度分:分一维数组,二维数组等。

按类型分:索引数组和关联数组。

索引数组:下标是阿拉伯数字的(0,1,2等)

关联数组:下标是一个字符串

6a27f60489da1b4d770c2ef792d0f7c4.png

二、数组的特点

数组就是一组数据(数字,字符串,对象)类型的集合,简单来说数组就是一种容器

  1. 数组内的数据可以是任意的类型
  2. 数组下标从0开始
  3. 数组的长度就是数组元素的个数(length)
  4. 数组下标的范围是0-length-1

三、数组的使用(重点)

3.1数组的地址传递

3.1.1 值传递

普通变量是值传递,其中的一个改变不会影响到另外一个值。因为各自都有自己的地址。

27d7c52d0120fed59c21eb5b70aaa671.png

9cfa333f884104f0103dd2b0394c4fd9.png

3.1.2 地址传递

数组是地址传递:其中的一个改变,会影响另一个的改变。因为他们共用一个地址。

982e5cf2f27cf5368a0860d09e385189.png

ee7b6881277649ce6c08f59d807a003d.png

[]:相当于(new Array)开辟了一个内存空间

39198906af83310768a93ed10544caa4.png

八哥总结说明:

一般的数据类型:数字,字符串,布尔是值传递。

数组和对象一般是地址传递。

3.2 数组的遍历

3.2.1普通循环遍历

什么是遍历:循环输出数组元素的值。

760280ce0c26b3575b53988022ac78ea.png

3.2.2 for...in的使用

d82a4e4a4d67481519b7f7ac9c552ddd.png

3.2.3 for...of的使用

77c83aca1c3199145eeb86bf8e892d05.png

keys():返回数组的下标

d384901af81a279df1494c5204175a27.png

values():返回数组元素的值

7b971c511aa12b4d672e5415be664ea1.png

entries():返回数组元素的键名和键值

ce641efb5ce076016989965e1ea6d5be.png

3.2.4 forEach等函数的遍历

3.3 数组的基本操作-增删改查(函数)

push():向数组的尾部添加数据

unshift():向数组的头部添加数据

pop():删除尾部的数据

shift():删除头部的数据

d825bd04e412c0e24502f20e9ac89bad.png

splice(from,howmany,items):添加删除数据。

From:从哪个下标开始添加还是删除

Howmany:删除或者添加几个数组元素

Items:添加的数据或者是修改的数据。

1.删除数组元素:

8962aea27d900dbdd56fffa91137a37d.png

2.删除数组元素并替换数组元素

3dce793b391fb188ace28fe7adc86b85.png

3.添加数组元素

70aba63d2c4cb2cebd9e6b9a44fe9362.png

四、数组的方法(重点)

4.1数组的属性

4.1.1 length的使用

length:数组的长度

length是一个可写属性。

如果设置length长度小于数组本身长度,那么多余元素舍弃。

如果设置length长度大于数组本身长度,那么缺少元素用空位补齐。

如果设置length长度不是合法数值,那么会报错Invalid array length

3d2b4298ee1899d860c0c17853d18bfd.png

5d62acf429d1ab4cfa037d2aae703c60.png

4.1.2数组的空位

当数组的某个位置是空元素,即两个逗号之间没有任何值,我们称该数组存在空位(hole)。

var countryNameArr = ['China','','Japan'];

countryNameArr.length//3

4.2 数组的方法

1.concat(arr1,arr2,....):连接多个数组

f0e164a2126cf80d6ff1c480f8a74f08.png

2.push()

3.pop()

4.shift()

5.unshift()

6.join():给数组添加一个分隔符并将数组转化为字符串

e064c2c04700e2dc648fe5998f41bc6c.png

7.reverse():倒叙输出数组元素

aaa27ae4084318da024d511a3547f02c.png

8.slice(start,end):数组的截取

cc253674f4e9dc22453624fc53fbc663.png

9.splice():添加修改删除数组元素

10.sort():数组的排序

按照字符(a-z)的顺序排序

50d2c59eba8f1aa8d2297a3b442ffee2.png

数字的排序方法:

1016b97bc6856ef9a84e5f62adaf7c17.png

e0b72fdc917ac48ff99433ff38c4fd32.png

177ef6426445115782055646764362c4.png

0e8054b24a236eeea387e260cc51b8f0.png

11. map():循环遍历数组,有返回值

aa91f001bd740f7f40d422fea277cb9d.png

36bd5232c4553e7e11447611601578d5.png

41aca344dd7c220d69d5acca68f58181.png

12. forEach():循环遍历数组,没有返回值

forEach(function(val,index,arr){
})

val:数组元素的值

index:下标

arr:数组本身

dde83c54dc18a4e7bd2e1321355de419.png

4af0ea1046da682fe08b7ae8c2698dad.png

13.filter():找到符合条件的所有元素

14.find():找到符合条件的第一个元素

d7063d0675179ae271ed018c7812a253.png

15.findIndex():找到符合条件的第一个元素的下标

96dba00febacee0b1a015c9d72f6c95b.png

16.some():只要有一个符合条件的就返回true

17.every():只要有一个不符合条件的就返回false

ae0f9d3dcdfde340c8270aec91ec99d8.png

18.includes():判断是否包含指定的数组元素,有就是true,没有就是false

52ee3686b205a2401fa78f4192ab5a28.png

19.reduce():数组元素的计算(从左到右)

20.reduceRight():数组元素的计算(从右到左)

10c931ef9052be85071ef9d7515b79a4.png

21.indexOf():返回指定数组元素的首次出现的下标

22.lastIndexOf():返回指定数组元素的最后一次出现的下标

60cb40f522e6507e9ef2df0fb2123a19.png

五、 二维数组

5.1 二维数组的定义

如果数组的元素还是数组,那么我们就称外层数组是一个二维数组。

语法:var arr = [[item1,item2],[item3,item4]];

var arr = [[1,2],[3,4]];

arr[0][1] = 2;

arr[1][0] = 3;

1f46f78828d9add200d9b2a0ca39c574.png

5.2 二维数组的访问

1f46f78828d9add200d9b2a0ca39c574.png

5.3 二维数组的遍历

六、数组的实例

6.1求最大值或者最小值

6.2数组排序(选择排序)

选择排序法:

从数组中选择第一个数组元素a[0],然后第一个数组与后面的所有数组元素依次比较,如果前一个大于后一个,那么就交换数据,最终找到一个最小的数组元素排在最前面,然后再一次循环找(从第二个数组元素开始与后面的所有数组元素依次比较。)

$arr=[100,90,98,70,85,60,87]从小到大排序

第1次排序:60,100,98,90,85,70,87

第2次排序:60,70,100,98,90,85,87

第3次排序:60,70,85,100,98,90,87

第4次排序:60,70,85,87,100,98,90

第5次排序:60,70,85,87,90,100,98

第6次排序:60,70,85,87,90,98,100

6.3 返回90-100范围的随机数(Math.random())

6.4 验证码的实现(随机的5位验证码-字母加数字)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值