1. push()
语法: 数组.push(要追加的数据)
作用: 向数组的末尾追加数据
返回值: 追加数据后数组最新的长度
var arr=[1,2,3,4,5]
var res = arr.push('你好')
console.log('追加之后:'+ arr)//追加之后:1,2,3,4,5,你好
console.log('返回值:'+ res)//返回值:6
2. pop()
语法: 数组.pop()
作用: 删除数组的最后一个数据
返回值: 被删除的数据
var arr=[1,2,3,4,5]
var res = arr.pop()
console.log('追加之后:'+ arr)//追加之后:1,2,3,4,5
console.log('返回值:'+ res)//返回值:5
3. unshift()
语法: 数组.unshift(要插入的数据)
作用: 在数组的最前面插入一个数据
返回值: 插入数据后数组最新的长度
var arr = [1, 2, 3, 4, 5]
var res = arr.unshift('hello')
console.log('插入之后 : ', arr)//插入之后 : (6) ['hello', 1, 2, 3, 4, 5]
console.log('返回值 : ', res)//返回值 : 6
4. shift()
语法: 数组.shift()
作用: 删除数组最前面一个数据
返回值: 被删除的数据
var arr = [1, 2, 3, 4, 5]
var res = arr.shift()
console.log('删除之后 : ', arr)//删除之后 : (4) [2, 3, 4, 5]
console.log('返回值 : ', res)//返回值 : 1
5. reverse()
语法: 数组.reverse()
作用: 反转数组
返回值: 反转好的数组
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.reverse()
console.log('反转之后 : ', res)//反转之后 : (5) [5, 4, 3, 2, 1]
6. splice()
语法: 数组.splice(开始索引, 多少个, 要插入的数据)
要插入的数据: 选填参数, 可以不写
作用: 删除数组中部分数据, 并选择性的插入数据
技巧: 从哪删除, 从哪插入 返回值: 是一个新数组, 内部存储着删除的所有数据
var arr = [1, 2, 3, 4, 5,]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.splice(2, 2)
// 表示从[2] 开始删除 2 个数据
console.log('删除之后的数组',arr);//删除之后的数组 (3) [1, 2, 5]
console.log('返回值',res);//返回值 (2) [3, 4]
var arr1=[1,2,3,4,5]
var res1 = arr1.splice(2, 2, '你好')
// 表示从[2] 开始删除 2 个数据, '你好' 这个数据插入到[2] 的位置
console.log('删除之后的数组',arr1);//删除之后的数组 (4) [1, 2, '你好', 5]
console.log('返回值',res1);//返回值 (2) [3, 4]
7. sort()
语法:
数组.sort()
数组.sort(function (a, b) { return a - b })
数组.sort(function (a, b) { return b - a })
作用: 对数组进行排序操作
返回值: 排序好的数组
var arr = [3,5,8,11,2,7]
console.log('原始数组 : ', arr)//原始数组 : (6) [3, 5, 8, 11, 2, 7]
// 排序方式1: 按照字符集顺序进行排序
var res = arr.sort()
console.log('排序之后 : ', arr)排序之后 : (6) [11, 2, 3, 5, 7, 8]
// 排序方式2: 按照升序进行排列
var res1 = arr.sort(function (a, b) { return a - b })
console.log('排序之后 : ', arr)//排序之后 : (6) [2, 3, 5, 7, 8, 11]
// 排序方式3: 按照降序进行排列
var res2 = arr.sort(function (a, b) { return b - a })
console.log('排序之后 : ', arr)//排序之后 : (6) [11, 8, 7, 5, 3, 2]
8. concat()
语法: 数组.concat(数据, 数据2, ...)
作用: 把所有参数连接在数组内
返回值: 连接好的新数组
var arr = [1,2,3,4,5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.concat([6,7,8])
console.log('concat 之后 : ', arr)//concat 之后 : (5) [1, 2, 3, 4, 5]
console.log('返回值 : ', res)//返回值 : (8) [1, 2, 3, 4, 5, 6, 7, 8]
9. join()
语法: 数组.join(连接符)
连接符默认可以不写, 不写默认使用 逗号(,)
作用: 用连接符把数组内的每一个数据连接成字符串
返回值: 连接好的字符串
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.join(' ^_^ ')
console.log('join 之后 : ', arr)//join 之后 : (5) [1, 2, 3, 4, 5]
console.log('返回值 : ', res)//返回值 : 1 ^_^ 2 ^_^ 3 ^_^ 4 ^_^ 5
var res1 = arr.join()
console.log('join 之后 : ', arr)//join 之后 : (5) [1, 2, 3, 4, 5]
console.log('返回值 : ', res1)//返回值 : 1,2,3,4,5
10. slice()
语法: 数组.slice(开始索引, 结束索引)
参数都是选填
开始索引默认值是 0
结束索引默认值是 数组的 length
特点:
包前不包后, 包含开始索引, 不包含结束索引
可以填写负整数, 表示倒数第几个
作用: 截取数组
不会改变原始数组, 而是把部分数据复制一份拿出来
返回值: 一个新数组
内部是截取出来的所有数据
var arr = [1, 2, 3, 4, 5, 6]
console.log('原始数组 : ', arr)//原始数组 : (6) [1, 2, 3, 4, 5, 6]
var res = arr.slice(2, 5)
// 表示从 [2] 截取到 [5], 包含 [2] 位置数据, 不包含 [5] 位置数据
var res1 = arr.slice(2, -2)
console.log('返回值 : ', res)//返回值 : (3) [3, 4, 5]
console.log('返回值 : ', res1)//返回值 : (2) [3, 4]
11. indexOf()
语法: 数组.indexOf(数据, 开始索引)
开始索引选填, 默认是 0
作用: 检索数据在数组中第一次出现的索引位置
返回值:
如果数组中有改数据, 那么就是该数据第一次出现的位置
如果数组中没有该数据, 那么就是 -1
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
// 在 arr 数组中检索 4 这个数据
var res = arr.indexOf(4)
// 因为第二个参数没写, 默认从[0] 开始检索
console.log('返回值 : ', res)//返回值 : 3
var res1 = arr.indexOf(4, 2)
// 表示从[2] 位置开始向后检索
console.log('返回值 : ', res1)//返回值 : 3
var res2 = arr.indexOf(4, 8)
console.log('返回值 : ', res2)//返回值 : -1
12. lastIndexOf()
和 indexOf 使用方法一模一样
区别, 从后向前检索
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
// 在 arr 数组中检索 4 这个数据
var res = arr.lastIndexOf(3)
// 因为第二个参数没写, 默认从[4] 开始检索
console.log('返回值 : ', res)//返回值 : 2
var res1 = arr.lastIndexOf(3, 1)
// 表示从[1] 位置开始向前检索
console.log('返回值 : ', res1)//返回值 : -1
var res2 = arr.lastIndexOf(3, 4)
// 表示从[4] 位置开始向前检索
console.log('返回值 : ', res2)//返回值 : 2
13. forEach()
语法: 数组.forEach(function (item, index, origin) { }) 作用: 遍历数组 返回值: 没有 undefined
var arr = [1, 2, 3, 4, 5]
arr.forEach(function (item, index, origin) {
console.log('我执行了', item, index, origin)
})
//我执行了 1 0 (5) [1, 2, 3, 4, 5]
//我执行了 2 1 (5) [1, 2, 3, 4, 5]
//我执行了 3 2 (5) [1, 2, 3, 4, 5]
//我执行了 4 3 (5) [1, 2, 3, 4, 5]
//我执行了 5 4 (5) [1, 2, 3, 4, 5]
14. map()
语法: 数组.map(function (item, index, origin) {})
作用: 遍历并映射数组
返回值: 一个和原始数组长度一样的新数组, 新数组内的每一项是原始数据映射结果
注意: return 的形式书写 映射条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.map(function (item) {
// 以 return 的形式书写映射条件
return item * 10
})
console.log('返回值 : ', res)//返回值 : (5) [10, 20, 30, 40, 50]
15. filter()
语法: 数组.filter(function (item, index, origin) {})
作用: 遍历并过滤数组
返回值: 一个新数组, 内部是原始数组内满足条件的项
注意: 以 return 的形式书写 过滤条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.filter(function (item) {
return item % 2 === 0
})
console.log('返回值 : ', res)//返回值 : (2) [2, 4]
16. find()
语法: 数组.find(function (item, index, origin) {})
作用: 在数组内查找满足条件的第一项
返回值: 找到的该项数据
注意: 以 rteurn 的形式书写 查找条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.find(function (item) {
return item % 2 === 0
})
console.log('返回值 : ', res)//返回值 : 2
17. findIndex()
语法: 数组.findIndex(function (item, index, origin) {})
作用: 在数组内查找满足条件的第一项的索引
返回值: 找到的该项数据的索引
注意: 以 return 的形式书写 查找条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.findIndex(function (item) {
return item % 2 === 0
})
console.log('返回值 : ', res)//返回值 : 1
18. every()
语法: 数组.every(function (item, index, origin) {})
作用: 判断数组内是不是每一个都满足条件
返回值: 是一个布尔值
true, 说明数组内每一项都满足条件
false, 说明数组内至少有一项不满足条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.every(function (item) {
return item <= 5
})
console.log('返回值 : ', res)//返回值 : true
var res1 = arr.every(function (item) {
return item <= 4
})
console.log('返回值 : ', res1)//返回值 : false
19. some()
语法: 数组.some(function (item, index, origin) {})
作用: 判断数组内是不是有某一个满足条件
返回值: 是一个布尔值
true, 说明数组内至少有一个满足条件
false, 说明数组内所有项都不满足条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.some(function (item) {
return item <= 3
})
console.log('返回值 : ', res)//返回值 : true
var res1 = arr.some(function (item) {
return item >= 6
})
console.log('返回值 : ', res1)//返回值 : false
20. reduce()
语法: 数组.reduce(函数, 初始值)
初始值选填, 默认是数组内 [0] 哪一项数据
作用: 叠加
返回值: 叠加结果
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr)//原始数组 : (5) [1, 2, 3, 4, 5]
var res = arr.reduce(function (prev, item, index, origin) {
console.log(prev, item)
return prev + item
}, 0)
console.log('返回值 : ', res)
// 原始数组 : (5) [1, 2, 3, 4, 5]
// 0 1
// 1 2
// 3 3
// 6 4
// 10 5
// 返回值 : 15