数组
- 什么是数组?
- 字面理解就是数字的组合
- 数组就是一组数据的集合,存储再在单个变量下的优雅方式
代码书写:
[1,2,3,'hello',true,false] //这个东西就是一个数组,存储着一些数据的集合
数据类型的分类
数组也是数据类型的一种
之前学过知道把所有的数据类型分为两大类基本数据类型和复杂数据类型
基本数据类型回顾:
number/string/boolean/undefined/null //这些都是基本数据类型
复杂数据类型回顾:
object/function/array/... // 这些都是复杂数据类型
创建一个数组
- 首先要明白数组就是一个
[]
- 在
[]
里面存储着各种各样的数据,按照顺序依次排好
字面量创建一个数组
- 直接使用
[]
的方式创建一个数组
// 创建一个空数组
var arr1 = []
// 创建一个有内容的数组
var arr2 = [1, 2, 3]
内置构造函数创建数组
// 创建一个空数组
var arr1 = new Array()
// 创建一个长度为 10 的数组
var arr2 = new Array(10)
// 创建一个有内容的数组
var arr3 = new Array(1, 2, 3)
数组的 length
-
length: 长度的意思
-
length 就是表示数组的长度,数组里面有多少个成员,length 就是多少
// 创建一个数组 var arr = [1, 2, 3] console.log(arr.length) // 3
数组的索引
索引,也叫做下标,是指一个数组里面排在第几个位置
需注意:在所有语言里面,索引都是从0开始的
// 创建一个数组
var arr = ['hello', 'world']
// 上面这个数组中,第 0 个 数据就是字符串 hello,第 1 个 数据就是字符串 world
获取索引:
var arr = ['hello', 'world']
console.log(arr[0]) // hello
console.log(arr[1]) // world
数据类型之间存储的区别(重点)
- 既然我们区分了基本数据类型和复杂数据类型
- 那么他们之间就一定会存在一些区别
- 他们最大的区别就是在存储上的区别
- 我们的存储空间分成两种 栈 和 堆
- 栈: 主要存储基本数据类型的内容
- 堆: 主要存储复杂数据类型的内容
基本数据类型在内存中的存储情况
-
var num = 100
,在内存中的存储情况 -
直接在 栈空间 内有存储一个数据
复杂数据类型在内存中的存储情况
-
下面这个 对象 的存储
var obj = { name: 'Jack', age: 18, gender: '男' }
复杂数据类型的存储
数据类型之间的比较
- 基本数据类型是值之间的比较
var num = 1
var str = '1'
console.log(num == str) // true
- 复杂数据类型是 地址 之间的比较
var obj = { name: 'Jack' }
var obj2 = { name: 'Jack' }
console.log(obj == obj2) // false
数组常用方法
1.push()
语法:数组.push(数据)
作用:将数据追加到数组的末尾
返回值:追加数据后数组最新的长度
代码书写:
var arr = [1, 2, 3]
// 使用 push 方法追加一个元素在末尾
arr.push(4)
console.log(arr) // [1, 2, 3, 4]
2.pop()
语法:数组.pop()
返回值:被删除掉的数据
代码书写:
var arr = [1, 2, 3]
// 使用 pop 方法删除末尾的一个元素
arr.pop()
console.log(arr) // [1, 2]
3.unshift()
语法:数组.unshift(数据)
作用:将数据添加到数组的最前
返回值:添加数据后数组的最新的长度
代码如下:
var arr = [1, 2, 3]
// 使用 unshift 方法想数组的最前面添加一个元素
arr.unshift(4)
console.log(arr) // [4, 1, 2, 3]
4.shift()
语法:数组.shift()
返回值:被删除掉的数据
代码如下:
var arr = [1, 2, 3]
// 使用 shift 方法删除数组最前面的一个元素
arr.shift()
console.log(arr) // [2, 3]
5.reverse()
语法:数组.reverse()
作用:将数组 反转
返回值:被反转后的数组
var arr = [1, 2, 3]
// 使用 reverse 方法来反转数组
arr.reverse()
console.log(arr) // [3, 2, 1]
6.splice()
语法:数组.splice(开始索引,多少个,要插入的数据)
开始索引:默认是0
多少个:默认是0
要插入的数据:默认是没有
作用:删除数据中若干数据,并选择是否插入新的数据
返回值:以新数组的形式返回被删除的数据
7.sort()
语法: 数组.sort()
数组.sort(function(a,b){return a - b })
数组.sort(function(a,b){return b - a })
作用:将数组进行排序
返回值:排序好的数组
var arr = [2, 3, 1]
// 使用 sort 方法给数组排序
arr.sort()
console.log(arr) // [1, 2, 3]
8.join()
语法: 数组.sort(连接符)
作用:将数组用连接符连接成为一个字符串
返回值:连接好的字符串
9.concat()
语法:数组.concat([其他数组])
作用:将其他数组和数组拼接在一起
返回值:拼接好的新数组
var arr = [1, 2, 3]
// 使用 concat 方法拼接数组
var newArr = arr.concat([4, 5, 6])
console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]
10.slice()
语法:数组.splice(开始索引,结束索引)
开始索引:默认是0
结束索引:默认是数组长度
作用:截取 数组中的某些数据
返回值:以新数组的形式返回截取出来的数据
11.indexOf()
语法:数组.indexOf(数据)
作用:查找数据在数组中的索引位置
返回值:有该数据,返回第一次出现的索引位置
没有该数据,返回-1
12.lastIndexOf()
语法:
=> 数组.lastIndexOf(数据)
=> 数组.lastIndexOf(数据, 开始索引)
\+ 作用: 从后向前检索该数据第一次在该数组内出现的位置
\+ 返回值:
=> 如果在数组内找到了该数据, 那么就是该数据第一次出现的索引位置
=> 如果在数据内没有找到该数据, 那么就是 -1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。