Array 数组
基本
创建数组
let arr = [1, 2, 3]
logd(arr) // 返回 1,2,3
数组长度
let arr = [1, 2, 3]
logd(arr.length) // 返回 3
遍历内容
let arr = [1, 2, 3]
for (let i = 0; i < arr.length; i++) {
logd(arr[i], i)
}
// 返回 1 0
// 返回 2 1
// 返回 3 2
查找
includes 是否包含
- 查找数组中 是否包含某个值,返回
true/false
- 注意是全匹配,不支持模糊匹配
参数1
: 待查找元素参数2
: 查找起始下标,不填默认0
let arr = [1, 2, "ssa", "ssb"]
logd(arr.includes(1)) // 返回 true
logd(arr.includes("ssa")) // 返回 true
logd(arr.includes("ss")) // 返回 false
logd(arr.includes(1, 2)) // 返回 false
indexOf 查找下标
- 查找数组中是否包含某个值,返回
数组下标
,找不到返回-1
- 注意是全匹配,不支持模糊匹配
参数1
: 待查找元素参数2
: 查找起始下标,不填默认0
let arr = [1, 2, "ssa", "ssb"]
logd(arr.indexOf(1)) // 返回 0
logd(arr.indexOf("ssa")) // 返回 2
logd(arr.indexOf("ss")) // 返回 -1
logd(arr.indexOf(1, 2)) // 返回 -1
find 模糊查找
find
接收一个function
类型的参数,可以自定义规则,实现模糊查找- 只返回找到的第一个元素
let arr = ["aaaa", "bbbb", "cccc", "dddd", "aabb"]
let ret = arr.find(function (value) {
return value.indexOf("aa") > -1
})
logd(ret) // 返回 aaaa
filter 模糊查找-所有
filter
接收一个function
类型的参数,可以自定义规则,实现模糊查找- 返回所有找到的元素, 返回一个新数组
let arr = ["aaaa", "bbbb", "cccc", "dddd", "aabb"]
let arr2 = arr.filter(function (value) {
return value.indexOf("aa") > -1
})
logd(arr2) // 返回 aaaa,aabb
取值
普通取值
let arr = [1, 2, 3]
logd(arr[1]) // 返回 2
pop 后方弹出
- 删除数组的最后一个元素并返回删除的元素
let arr = [1, 2, 3]
logd(arr) // 返回 1,2,3
logd(arr.pop()) // 返回 3
logd(arr) // 返回 1,2
shift 前方弹出
- 删除并返回数组的第一个元素
let arr = [1, 2, 3]
logd(arr) // 返回 1,2,3
logd(arr.shift()) // 返回 1
logd(arr) // 返回 2,3
slice 裁剪
- 选取数组的一部分,并返回一个新数组
参数1
: 起始位置,0
开始, 可用负数参数2
: 结束位置. 可空, 可用负数- 返回新数组
let arr = [1, 2, 3, 4, 5]
let arr2 = arr.slice(2, 4)
logd(arr) // 返回 1,2,3,4,5
logd(arr2) // 返回 3,4
arr2 = arr.slice(2)
logd(arr2) // 返回 3,4,5
arr2 = arr.slice(-2)
logd(arr2) // 返回 4,5
arr2 = arr.slice(-2, -1)
logd(arr2) // 返回 4
添加
普通
let arr = [1, 2, 3]
logd(arr) // 返回 1,2,3
arr[3] = 4
logd(arr) // 返回 1,2,3,4
push 末尾追加
- 支持一次 性追加多个
let arr = [1, 2, 3]
logd(arr) // 返回 1,2,3
arr.push(4, 5, 6)
logd(arr) // 返回 1,2,3,4,5,6
unshift 开头追加
- 支持一次性追加多个
let arr = [1, 2, 3]
logd(arr) // 返回 1,2,3
arr.unshift(4, 5, 6)
logd(arr) // 返回 4,5,6,1,2,3
排序
reverse 数组反转
let arr = [1, 2, 3]
arr.reverse()
logd(arr) // 返回 3,2,1
sort 普通排序
- 普通
sort
排序,英文
是按照字母的ascii
码进行排序
let arr = ["Banana", "Orange", "Apple", "Mango"];
arr.sort();
logd(arr) // 返回 Apple,Banana,Mango,Orange
- 普通
sort
排序,数字
是按照数字的第一个字进行排序, 如果有相同的,再按第二个排序
let arr = [40, 100, 1, 5, 25, 10]
arr.sort()
logd(arr) // 返回 1,10,100,25,40,5
sort 进阶排序
sort
可以接收一个参数,参数类型为function
函数- 函数中写入处理方法,可根据规则自行设置排序规则
- 正序
let arr = [40, 100, 1, 5, 25, 10]
arr.sort(function (a, b) {
return a - b
})
logd(arr) // 返回 1,5,10,25,40,100
- 倒序
let arr = [40, 100, 1, 5, 25, 10]
arr.sort(function (a, b) {
return b - a
})
logd(arr) // 返回 100,40,25,10,5,1
其他
- 参考菜鸟教程 点击跳转