跳到主要内容

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.push(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

其他