字符串转换
arr.toString( )可以将数组转化为字符串,默认分隔符为逗号
arr.join( )可以也可以将数组转化为字符串,还可以规定分隔符
str.split(' ')可以将以空格分隔的字符串转为数组
增删
arr.pop( ) 删除数组最后一个元素,并且返回该元素
arr.push( )在数组末尾添加新的元素,并且返回数组新的长度
arr.shift( )删除数组首个元素,并且返回该原数
arr.unshift( )在数组开头添加新的元素,并且返回新的长度
arr.splice( )删除任何位置的数组,用法:
let arr=['tom','jack','haw']
arr.splice(0,1) // 在索引为0的地方,删除1个元素
arr.splice(1,2) // 在索引为1的地方,删除2个元素
数组合并
concat( )方法可以合并现有数组,创建一个新的数组
let arr1 = ['西瓜', '苹果', '哈密瓜']
let arr2 = ['火锅', '烤肉', '炸鸡']
// 合并arr1和arr2
let arr3 = arr1.concat(arr2) // 西瓜,苹果,哈密瓜,火锅,烤肉,炸鸡
数组排序
arr.sort( ) 方法以字母顺序对数组进行排序
arr.reverse( )方法可以反转数组中的元素
比值函数:sort内嵌函数排序
let num = [1, 4, 2, 3, 6, 8, 5, 0, 9]
// 数字排序
console.log('原数组:' + num)
console.log('sort()内嵌方法顺序排序:' + num.sort((a, b) => a - b)) // 0,1,2,3,4,5,6,8,9
console.log('sort()内嵌方法降序排序:' + num.sort((a, b) => b - a)) // 9,8,6,5,4,3,2,1,0
数组迭代(遍历)
| 方法 | 作用 | 说明 |
|---|---|---|
| forEach | 遍历数组 | 不返回,用于不改变值、查找、打印输出值 |
| map | 迭代数组 | 返回新数组,新数组里面的元素是处理之后的值,经常用于处理数据 |
| filter | 过滤数组 | 返回新数组,筛选数组元素,并生成新数组 |
| reduce | 累加器 | 返回数组累加处理的结果,经常用于求和等... |
forEach( )方法遍历数组每一个元素
let num1 = [45, 33, 21, 16, 10]
num1.forEach(item => console.log(item))
// 45
// 33
// 21
// 16
// 10
map( )方法可以操作原来的数组,但不改变原始数组,并返回一个新的数组
let num1 = [45, 33, 21, 16, 10]
// map( )方法回返回一个新的数组,需要定义一个变量来接收
let num2 = num1.map(item => item * 2) // 遍历num1数组,并让每个元素*2
console.log(num2) // 打印:[90, 66, 42, 32, 20]
filter( )方法通过测试数组,过滤掉不符合的元素,并返回一个新的数组
let num1 = [45, 33, 21, 16, 10]
let num2 = num1.filter(item => item > 20) // 值大于20的元素创建一个新的数组
console.log(num2) //打印:[45, 33, 21]
reduce( )方法计算数组元素相加后的总和,这个方法有四个参数:总数(初始值)、项目值、项目索引、数组本身
let num1 = [45, 33, 21, 16, 10]
let sum= num1.reduce((total,item)=>total+item) // total是初始值,为0
console.log(sum) // 125
reduce( )方法可以接受一个初始值
let num1 = [45, 33, 21, 16, 10]
let sum= num1.reduce((total,item)=>total+item,100) // 添加一个初始值后,total为100
console.log(sum) // 225
every( )方法检查数组所有元素是否通过测试,返回布尔值!!!是所有元素通过才会返回true
let num1 = [45, 33, 21, 16, 10]
let yesOrNo=num1.every(item => item > 20) // 检查数组每个元素是否大于20
console.log(yesOrNo) // false
let num1 = [45, 33, 21, 22, 25]
let yesOrNo=num1.every(item => item > 20) // 检查数组每个元素是否大于20
console.log(yesOrNo) // true
some( )方法检查数组某元素是否通过了测试,返回布尔值!!!任意一个元素通过都返回true
let num1 = [45, 33, 21, 16, 10]
let yesOrNo=num1.some(item => item >20) // 检查数组每个元素是否大于20,有一个通过都会返回true
console.log(yesOrNo) // true
indexOf( )方法搜索数组中是否有这个元素,如果有返回该元素的索引,没有则返回-1
let num1 = [45, 33, 21, 16, 10]
let index1=num1.indexOf(10) // 数组中是否有10这个元素值
console.log(index1) // 4 返回10所在的索引
let index2 = num1.indexOf(50) // 数组中是否有50这个元素值
console.log(index2) // -1
find( )方法返回数组中第一个通过测试的元素值
let num1 = [45, 33, 21, 16, 10]
let first=num1.find(item => item > 10)
console.log(first) // 45
findIndex( )方法返回数组中第一个通过测试的元素的索引