数组
-
概念:数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的一种方式。
-
数组(Array):数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。
//普通变量一次只能存一个值 var num=66 //数组一次可以存多个值 var arr=[6,66,9,88,8,5,7]
创建数组
JS中创建数组有两种方式:
- 我们数组里面的数据一定用逗号分隔
- 数组里面的数据 :我们称为数组元素
- 获取数组元素:格式 数组名[索引号] 索引号从 0开始
利用new创建数组(内置构造函数创建数组)
//利用new创建数组
var arr = new Array() // 创建了一个空的数组
var arr1 = new Array(2) // 这个2 表示 数组的长度为 2 里面有2个空的数组元素
var arr1 = new Array(2, 3) // 等价于 [2,3] 这样写表示 里面有2个数组元素 是 2和3
利用数组字面量创建数组
// 利用数组字面量创建数组 []
var arr = [] // 创建了一个空的数组
var arr1 = [8, 7, 'rou', true]
console.log(arr1)
console.log(arr1[2]) //rou
console.log(arr2[5])// 因为没有这个数组元素 所以输出的结果是 undefined
数组的length
-
length
: 长度的意思 -
数组length
就是表示数组的长度,数组里面有多少个成员,length
就是多少// 创建一个数组 var arr = [1, 2, 3] console.log(arr.length) // 3
数组的索引
-
索引,又叫下标,是指一个数据在数组里面排在第几个的位置
-
在所有的语言里面,索引都是从 0 开始的,在
js
里面也一样,数组的索引从 0 开始var arr = ['嘟嘟', 20] //这里的arr[0]就是数组里的第一个数据 console.log(arr[0]) // 嘟嘟 console.log(arr[1]) // 20
-
数组索引的方法
方法名 说明 返回值 indexOf() 数组中查找给定元素的第一个索引 如果存在返回索引号,否则返回-1 lastIndexOf() 在数组中的最后一个索引 如果存在返回索引号,否则返回-1
数组转换字符
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换成字符串,逗号分隔每一项 | 返回一个字符串 |
join(‘分隔符’) | 方法用干把数组中的所有元素转换为一个字符串。 | 返回一个字符串 |
添加删除数组元素的方法
-
通过修改length长度新增数组元素
-
通过修改length长度来实现数组扩容的目的
-
length属性是可读写的
-
新增数组元素,修改索引号,追加数组
-
不能直接给数组名赋值,否则会覆盖以前的数据
// 添加删除数组元素方法
// 1. push() 在数组的末尾 添加一个或者多个数组元素
var arr = [1, 2, 3]
// arr.push(5, 'dudu')
console.log(arr.push(5, 'dudu'))
console.log(arr)
// (1) push 是可以给数组追加新的元素
// (2) push() 参数直接写 数组元素就可以了
// (3) push完毕之后,返回的结果是 新数组的长度
// (4) 原数组也会发生变化
// 2. unshift 在数组的开头 添加一个或者多个数组元素
console.log(arr.unshift(5, 1))
console.log(arr)
// (1) unshift是可以给数组前面追加新的元素
// (2) unshift() 参数直接写 数组元素就可以了
// (3) unshift完毕之后,返回的结果是 新数组的长度
// (4) 原数组也会发生变化
// 3. pop() 它可以删除数组的最后一个元素
console.log(arr.pop())
console.log(arr)
// (1) pop是可以删除数组的最后一个元素 记住一次只能删除一个元素
// (2) pop() 没有参数
// (3) pop完毕之后,返回的结果是 删除的那个元素
// (4) 原数组也会发生变化
// 4. shift() 它可以删除数组的第一个元素
console.log(arr.shift())
console.log(arr)
// (1) shift是可以删除数组的第一个元素 记住一次只能删除一个元素
// (2) shift() 没有参数
// (3) shift完毕之后,返回的结果是 删除的那个元素
// (4) 原数组也会发生变化
方法名 | 说明 | 返回值 |
---|---|---|
数组.push(参数1…) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
数组.pop() | 删除数组最后一个元素,把数组长度减1无参数、修改原数 | 返回它删除的元素的值 |
unshift(参数1…) | 向数组的开头添加一个或更多元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1无参数、修改原数组 | 并返回第一个元素的值 |
数组排序
方法名 | 说明 | 返回值 |
---|---|---|
reverse( | 颠倒数组中元素的顺序,无参数 | 该方法会改变原来的数组返回新数组 |
sort() | 对数组的元素进行排序 | 该方法会改变原来的数组返回新数组 |
var arr = [15, 6, 8, 9, 5]
arr.sort(function(a, b) {
return b - a // 降序
// return a - b; // 升序
})
console.log(arr)
遍历数组
var name = ['baibai','zaizai','dudu']
// for 循环
for(var i = 0; i < name.length; i++) {
console.log(name[i])
}
for in 遍历
var a = [1, 2, 3];
for (var key in a) {
console.log(a[key])
}