JavaScript,难点来啦,数组

语言: CN / TW / HK

数组的概念

数组就是一组数(一般来说,数据类型一样),相当于一次性定义了很多相同数据类型的变量,如果说单个变量是一个小容器,数组就是有多个格档的大容器(每个格档是个小容器)。
也就是存储一组相同的数据类型的数据
例如定义一个数组:var arr = [1,2,3];(字面量声明)
数组下标----访问数组的值的方法:arr[index]
注意:下标是从0开始
数组的长度----arr.length(可以随时被更改)
例如: js var arr = [1,2,3] ; console.log(arr[10]); // 此时arr[10]没有被赋值,undefined // [1,2,3,,,,,,,20] // 实际上变相的加长了数组的长度 arr[10] = 20 ; console.log(arr[10]); console.log(arr.length); // 赋值后数组的长度就发生了改变

数组的声明

  1. 字面量声明:var arr = [1,2,3]
  2. 实例化一个对象:var arr = new Array(1,2,3) ;( Array构造函数(用于创建对象的),当Array只有一个参数的时候,表示数组的长度) 例如:声明一个数组存入10个数:

js //定义一个空数组 var arr = []; for (var i = 0; i < 10; i++) { //存入值 arr[i] =i ; } console.log(arr)//打印[0,1,2,3,4,5,6,7,8,9]

数组的遍历

遍历:读取数组中的每一个值。
普通循环遍历

js //普通循环遍历,读取数据中的每个值 for(var i = 0 ; i < arr.length ; i++) { console.log(arr[i]); } for in(用于遍历对象的角标---bug(自动过滤空值))

js for in 用于遍历对象的角标 -- bug(自动过滤掉空值) for(var i in arr) { console.log(arr[i]); } for of (遍历对象 的值value)

js for (var v of arr) { console.log(v); } 应用:找到数组中的最大值:思路就是,相当于假设法,先定义一个值,把他当做最大值,然后与数组中的值一一比较,比他大的话,大值就赋值赋值给他,直到比较完。

```js

```

数组的基本方法:

push(v1,v2,v3...) 向数组尾部追加值
pop() 在数组尾部删除一个值
unshift() 向数组的头部追加值
shift() 向数组的头部删除一个值
这里必须要提一提伪数组arguments的用法:
一般情况下,使用形参来接受实参的值, 但是可以使用arguments来接受实参
例如封装上面所说的数组的方法push

js var arr = [1, 2, 3, 4, 5] //给push封装,向数组尾部追加值 function push() { //arguments 伪数组,遍历伪数组,存入arr中,每循环一次,arr.length的值会加一。进而可以存值 for (var i = 0; i < arguments.length; i++) { arr[arr.length] = arguments[i]; } console.log(arr); } push(6, 7, 'hello', 'hi')//[1,2,3,4,5,6,7, 'hello', 'hi'] 封装上面所说的数组的方法pop:

js var arr = [1, 2, 3, 4, 5] //给pop封装,在数组尾部删除一个值 function pop() { //定义一个空数组arr1 var arr1 = []; //遍历除去最后一个数的arr数组,并加到空数组中 for (var i = 0; i < arr.length - 1; i++) { arr1.push(arr[i]) } console.log(arr1) } pop()//[1,2,3,4] 封装上面所说的数组的方法unshift:

js var arr = [1, 2, 3, 4, 5] //给unshift封装,向数组的头部追加值 function unshift() { var arr3 = []; for (var i = 0; i < arguments.length; i++) { arr3[arr3.length] = arguments[i]; } for (i = 0; i < arr.length; i++) { arr3.push(arr[i]) } console.log(arr3) } unshift('a', 'b', 8)//['a', 'b', 8,1,2,3,4,5] 封装上面所说的数组的方法shift:

js var arr = [1, 2, 3, 4, 5] 给shift封装,向数组头部删除一个值 function shift() { var arr2 = []; //遍历除去第一个数的数组arr for (var i = 1; i < arr.length; i++) { arr2.push(arr[i]) } console.log(arr2) } shift()//[2,3,4,5]

数组的排序方式:

  1. 冒泡排序
  2. 选择排序 相信这是很多小白的第一个小难点,单独拿一篇博客来说