[TOC]
常用函数
Array 对象
函数 | 说明 |
---|---|
length | 数组长度 |
split() | 字符串转数组 |
join() | 将数组的所有元素连接成一个字符串 |
slice() | 截取数组,并返回新数组 |
splice() | 从数组中添加/删除元素 |
filter() | 过滤,并返回新数组 |
map() | 循环处理,返回新数组 |
forEach() | 循环处理,改变原数组 |
sort() | 对数组的元素进行排序 |
reverse() | 反转数组 |
includes() | 是否包含指定的元素 |
indexOf() | 返回元素下标 |
lastIndexOf() | 从末尾开始,返回元素下标 |
push() | 末尾添加,并返回新的长度 |
unshift() | 开头添加,并返回新的长度 |
pop() | 删除最后一个元素,并返回该元素 |
shift() | 删除第一个元素,并返回该元素 |
isArray() | 是否为数组 |
valueOf() | 返回所引用的数组 |
keys() | 返回下标数组 |
concat() | 连接两个或多个数组,不会改变原数组 |
some() | 至少有一个符合条件就返回 true |
every() | 每个都符合条件就返回 true |
fill(str) | 以 str 替换整个数组的元素 |
reduce() | 将数组的值减为单个值(从左到右) |
reduceRight() | 将数组的值减为单个值(从右到左) |
find() | 返回数组中第一个通过测试的元素的值 |
findIndex() | 返回数组中通过测试的第一个元素的索引 |
push()、unshift()、pop()、shift()、concat()
- 增、删、改、查、拼接
let arr = [1,2,3]
arr.push(4)
// [1,2,3,4]
let arr = [1,2,3]
arr.unshift(4)
// [ 4,1,2,3 ]
let arr = [1,2,3]
let a = arr.pop()
// a : 3
// arr : [ 1,2 ]
let arr = [1,2,3]
let a = arr.shift()
// a : 1
// arr : [ 2,3 ]
let arr1 = [1,2,3]
let arr2 = [4,5,6]
let arr3 = [7,8,9]
let arr4 = arr1.concat(arr2,arr3)
// arr4 : [1,2,3,4,5,6,7,8,9]
length
- 数组长度
let arr = [1,2,3,4,5,6,7,8,9]
console.log(arr.length);
// 9
split()
- 字符串转数组
let str = "Banana,Orange,Lemon,Apple,Mango"
let arr = str.split(",")
// [ Banana,Orange,Lemon,Apple,Mango ]
splice()
- 添加
- 删除,并返回删除项
- 方法会改变原始数组
// 原始数组
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 处理方式 1
// 从下标 2 开始,删除 1 个元素,并从下标 2 开始插入 2 个元素
fruits.splice(2, 1, "Lemon", "Kiwi");
// ['Banana', 'Orange', 'Lemon', 'Kiwi', 'Mango']
// 处理方式 2
// 从下标 2 开始插入 2 个元素
fruits.splice(2, 0, "Lemon", "Kiwi");
// ['Banana', 'Orange', 'Lemon', 'Kiwi', "Apple", 'Mango']
// 处理方式 3
// 从下标 2 开始,删除 2 个元素
fruits.splice(2, 2);
// ['Banana', 'Orange']
// 处理方式 4
// 删除下标 2 的元素,并插入 2 个元素
fruits.splice(2, 2);
// ['Banana', 'Orange', 'Lemon', 'Kiwi', 'Mango']
slice()
- 以新数组方式,返回被选中的元素
- [ 包含开始位置 , 不包含结束位置 )
- 不会改变原始数组
array.slice( start, end )
// [ 包含 start 位置 , 不包含 end 位置 )
// 原始数组
let fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
// 处理方式 1
let newArr = fruits.slice(1, 3);
// [ "Orange", "Lemon" ]
// 处理方式 2
let newArr = fruits.slice(1);
// [ "Orange", "Lemon", "Apple", "Mango" ]
// 处理方式 3
let newArr = fruits.slice(-3,-1);
// [ "Orange", "Lemon", "Apple", "Mango" ]
filter()
- 过滤,并返回新数组
let arr = [1,2,3,4,5,6,7,8,9]
let filterArr = arr.filter(i=>i>5)
// [ 6,7,8,9 ]
map()
- 过滤,并返回新数组
let arr = [1,2,3]
let mapArr = arr.map(i=>i*2)
// [ 2, 4, 6 ]
forEach()
- 过滤,并返回新数组
let arr = [1,2,3]
arr.map(i=>i*2)
// [ 2, 4, 6 ]
sort()
- 排序
let points = [40, 100, 1, 5, 25, 10];
// 默认排序
// 使用字母顺序排序
points.sort( (a, b) => a - b );
// [ 1,10,100,25,40,5 ]
// 升序
points.sort( (a, b) => a - b );
// [ 1,5,10,25,40,100 ]
// 降序
points.sort( (a, b) => b - a );
// [ 100,40,25,10,5,1 ]
reverse()
- 反转数组
let arr = [1,2,3]
arr.reverse()
// [ 3, 2, 1 ]
includes()
- 是否包含指定的元素
let arr = [1,2,3]
let flog = arr.includes(2)
// true
indexOf()、lastIndexOf()、findIndex()
- indexOf : 返回元素下标
- lastIndexOf :从末尾开始,返回元素下标
- findIndex :返回数组中通过测试的第一个元素的索引
// 返回元素下标
let arr = [1,2,3,4,5,6,7,8,9]
let index = arr.indexOf(5)
// 4
// 从末尾开始,返回元素下标
let arr = [1,2,2,5,5,6]
let index = arr.lastIndexOf(2)
// 2
// 返回数组中通过测试的第一个元素的索引
let arr = [1,2,2,5,5,6]
let index = arr.findIndex(5)
// 3
join()、split()
- join : 数组转字符串
- split : 字符串转数组
let arr = [1,2,3,4,5,6,7,8,9]
let str = arr.join()
// "1,2,3,4,5,6,7,8,9"
let str = "Mango,Apple,Orange,Banana"
let arr = str.split(",")
// [ "Banana", "Orange", "Apple", "Mango" ]
some()、every()
- some : 至少有一个符合条件就返回 true
- every : 每个都符合条件就返回 true
// 至少有一个符合条件就返回 true
let arr = [1,2,3,4,5,6,7,8,9]
let flag = arr.some( i => i>5)
// true
// 每个都符合条件就返回 true
let arr = [1,2,3,4,5,6,7,8,9]
let flag = arr.every( i => i>5)
// false
reduce()、reduceRight()
- reduce : 将数组的值减为单个值(从左到右)
- reduceRight : 将数组的值减为单个值(从右到左)
// 将数组的值减为单个值(从左到右)
let arr = [175, 50, 25]
let reduceArr = arr.reduce((total, num) => total - num)
// 100
// 将数组的值减为单个值(从右到左)
let arr = [175, 50, 25]
let reduceArr2 = arr.reduceRight((total, num) => total - num)
// -200
isArray()、fill(str)、valueOf()
- isArray : 是否为数组
- fill(str,start,end) : 以 str 替换数组的元素,[ 包含 start 下标, 不包含 end 下标 )
- valueOf : 返回所引用的数组
let arr = [1,2,3,4,5,6,7,8,9]
let flag = Array.isArray(arr)
// true
let arr1 = [1,2,3,4,5]
let arr2 = arr.fill("str")
// [ "str", "str", "str", "str", "str" ]
let arr3 = arr.fill("str",2)
// [ 1,2, "str", "str", "str" ]
// [ 包含 start 下标, 不包含 end 下标 )
let arr3 = arr.fill("str",2,3)
// [ 1,2,"str",4,5 ]
let arr = [1,2,3,4,5,6,7,8,9]
let a = arr
a = a.push(10)
let b = a
let c = b.valueOf()
console.log(c)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
join()、split()
- join : 数组转字符串
- split : 字符串转数组
let arr = [1,2,3,4,5,6,7,8,9]
let str = arr.join()
// "1,2,3,4,5,6,7,8,9"
let str = "Mango,Apple,Orange,Banana"
let arr = str.split(",")
// [ "Banana", "Orange", "Apple", "Mango" ]