@TOC
join()
join,就是把数组转换成字符串,然后给他规定个连接字符,默认的是逗号( ,) 书写格式:join(" "),括号里面写字符串 (“要加引号”) 示例:
let arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("-")); // 1-2-3
push()和pop()
push():可向数组的末尾添加一个或多个元素,并返回新的长度 示例:
let arr = [1,2,3]
arr.push(4)
arr.push(5,6)
console.log(arr) // [1,2,3,4,5,6]
pop():用于删除数组的最后一个元素并返回删除的元素 示例:
let arr = [1,2,3,4,5,6]
arr.pop()
console.log(arr) // [1,2,3,4,5]
shift() 和 unshift()
shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值 示例:
let arr = [1,2,3,4]
const num = arr.shift()
console.log(num) // 1
console.log(arr) // [2,3,4]
unshift():可向数组的开头添加一个或更多元素,并返回新的长度 示例:
let arr = [1,2,3]
arr.unshift(0)
arr.unshift(-2,-1)
console.log(arr) // [-2,-1,0,1,2,3]
concat()
concat():用于连接两个或多个数组 示例:
let arr = [1,2,3]
let arr1 = [4,5,6]
let arr2 = [7,8,9]
let arrS = arr.concat(arr1,arr2)
console.log(arrS) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
sort()
sort():用于对数组的元素进行排序 示例:
let arr = [3,7,6,9,1,5,8,4,2]
arr.sort() // 默认从小到大
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr.sort((a,b) =>{ // 从大到小
return b - a
})
console.log(arr) // [9, 8, 7, 6, 5, 4, 3, 2, 1]
reverse()
reverse():用于颠倒数组中元素的顺序 示例:
let arr = [1,2,3,4]
arr.reverse() // 默认从小到大
console.log(arr) // [4,3,2,1]
slice()
slice():返回从原数组中指定开始下标到结束下标之间的项组成的新数组,并不会修改原数组,可接受一个参数或两个参数。 示例:
let arr = [1,2,3,4,5,6,7]
let arr1 = arr.slice(1)
let arr2 = arr.slice(1,4)
let arr3 = arr.slice(1,-2)
let arr4 = arr.slice(-4,-2)
console.log(arr) // [1, 2, 3, 4, 5, 6, 7] 原数组不变
console.log(arr1) // [2, 3, 4, 5, 6, 7]
console.log(arr2) // [2, 3, 4]
console.log(arr3) // [2, 3, 4, 5]
console.log(arr4) // [4, 5]
// arr1 只设置了一个参数1,所以返回的的数组就是从下标1(包括1)的位置到数组的最后一项
// arr2 设置了参数1,4,所以返回的的数组就是从下标1(包括1)到数组下标为4(不包括4)的项
// arr3 设置了参数1,-2,当出现了负数参数,将负数加上数组长度的值(本示例中为7)来替换该位置的数,所以返回的的数组就是从下标1(包括1)的位置到数组下标为5(不包括5)的项
// arr4 设置了参数-4,-2,出现负数(算法同上),所以返回的的数组就是从下标3(包括1)的位置到数组下标为5(不包括5)的项
splice()
splice():用于添加、删除或替换数组中的元素 添加: 可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项 书写格式:arr.splice( 1,0,3,4 )
删除:指定 2 个参数:要删除的第一项的位置和要删除的项数 书写格式: arr.splice( 1 , 3 )
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等 书写格式: arr.splice( 1 , 1,2,3 )
示例:
// 添加
let arr = [1,2,3,4,5]
arr.splice(1,0,8,9)
console.log(arr) // [1, 8, 9, 2, 3, 4, 5]
// 删除
let arr1 = [1,2,3,4,5]
arr1.splice(1,2)
console.log(arr1) // [1, 4, 5]
// 替换
let arr2 = [1,2,3,4,5]
arr2.splice(1,2,6,7)
console.log(arr2) // [1, 6, 7, 4, 5]
indexOf()和lastIndexOf()
indexOf():返回数组中某个指定的元素位置,有两个参数,第一个参数item(必须。要查找的元素),第二个参数 start(可选的整数参数,规定在数组中开始检索的位置) 示例:
let arr = [1, 2, 3, 4, 5, 3]
let index1 = arr.indexOf(1)
let index2 = arr.indexOf(2, 2)
let index3 = arr.indexOf(3, 3)
let index4 = arr.indexOf(3, 1)
console.log(index1) // 0 在数组arr中查找元素1,找到了,返回所在数组的下标位置
console.log(index2) // -1 在数组arr中查找元素1,并且从数组下标为2的位置开始向后查找,没有找到,返回-1
console.log(index3) // 5 在数组arr中查找元素3,并且从数组下标为1的位置开始向后查找,找到了,返回元素在数组中第一次出现的下标位置5
console.log(index4) // 2 原理同上
lastIndexOf():返回数组中某个指定的元素在数组中最后出现的位置,有两个参数,第一个参数item(必须。要查找的元素),第二个参数 start(可选的整数参数,规定在数组中开始检索的位置) 示例:
let arr = [1, 2, 3, 4, 5, 3]
let index1 = arr.lastIndexOf(3)
let index2 = arr.lastIndexOf(3, 1)
let index3 = arr.lastIndexOf(3, 4)
let index4 = arr.lastIndexOf(3, 5)
console.log(index1) // 5 在数组arr中查找元素3,找到了,返回元素所在数组最后一次出现的位置
console.log(index2) // -1 在数组arr中查找元素3,并且从数组下标为1的位置开始向前查找,没有找到,返回-1
console.log(index3) // 2 在数组arr中查找元素3,并且从数组下标为4的位置开始向前查找,找到了,返回元素在数组中第一次(注意:是从后向前找的,所以说是第一次,如果从前往后算,是最后一次出现的下标位置)出现的下标位置2
console.log(index4) // 5 原理同上
includes
includes:判断一个数组是否包含一个指定的值,如果是返回 true,否则false 示例:
let arr = ['one', 'two', 'three', 'four', 'five']
let flag = arr.includes('one')
let flag1 = arr.includes('six')
let flag2 = arr.includes('two',1)
let flag3 = arr.includes('two',-1)
console.log(flag) // true
console.log(flag1) // false
console.log(flag2) // true
console.log(flag3) // false
说明:返回布尔值
参数:
1.必要,要查找的元素
2.非必要,数组下标位置开始查找
forEach
forEach:对数组进行遍历循环,并将元素和下标传递给回调函数 示例:
let arr = [1, 2, 3]
arr.forEach((v, i) => {
console.log(v) // 1 2 3 v 数组中每一项元素
console.log(i) // 0 1 2 i 数组中每一项元素的下标
})
说明: 无返回值
map
map():对数组进行遍历循环,并返回一个新数组,新数组中的元素为原始数组元素调用函数处理后的值 示例:
let arr = [1, 2, 3]
let newArr = arr.map((v) => {
return v += 1
})
console.log(arr) // [1, 2, 3]
console.log(newArr) // [2, 3, 4]
说明: 返回一个新数组,不会修改原数组
filter
filter:对数组进行遍历循环,创建一个新的数组,新数组中的元素是满足过滤合条件的所有元素 示例:
let arr = [1, 2, 3, 4]
let newArr = arr.filter((v) => {
return v > 2 // 返回大于2的数组元素
})
console.log(arr) // [1, 2, 3, 4]
console.log(newArr) // [3, 4]
说明: 返回一个新数组,不会修改原数组
every
every:对数组进行遍历循环,判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true 示例:
let arr = [1, 2, 3, 4]
let flag = arr.every((v) => {
return v > 2 // 判断元素是否大于2
})
console.log(arr) // [1, 2, 3, 4]
console.log(flag) // false 数组arr中的元素没有全部都大于2,所以返回false
说明: 返回一个布尔值,不会修改原数组
some
some:对数组进行遍历循环,判断数组中每一项都是否满足条件,只有有一项都满足条件,就会返回true 示例:
let arr = [1, 2, 3, 4]
let flag = arr.some((v) => {
return v > 2 // 判断元素是否大于2
})
console.log(arr) // [1, 2, 3, 4]
console.log(flag) // true 数组arr中的元素有大于2的,所以返回true
说明: 返回一个布尔值,不会修改原数组