常用数组方法大全

112 阅读3分钟

一、数组的增删查

1、数组元素的新增

1.1push方法:返回值为新数组的长度(length)

// 语法: arr.push(元素) 在数组末尾新增元素 
let arr = [10, 20, 30, 40, 50]
const newArr = arr.push(66)
console.log(newArr) // 6

1.2unshift方法:返回值为新数组的长度(length)

// 语法: arr.unshift(元素) 在数组开头新增元素 
let arr = [10, 20, 30, 40, 50]
const newArr = arr.unshift(66)
console.log(newArr) // 6

2、数组的删除

2.1pop方法:

返回值为被删除的元素

// 语法: arr.pop() 删除数组最后一个元素
let arr = [10, 20, 30, 40, 50]
console.log(arr.pop()) // 50

2.2shift方法:

返回值为被删除的元素

// 语法: arr.shift() 删除数组第一个元素
let arr = [10, 20, 30, 40, 50]
console.log(arr.shift()) // 10

2.3splice方法:

语法:arr.splice(起始下标,删除数量,...插入元素)

splice方法比较特别,它可以实现数组的删除、替换以及插入

let arr = [10, 20, 30, 40, 50]
// 当删除数量为 1 且只有两个参数时可以删除指定元素 返回值为被删除的元素
**console**.log(arr.splice(2,1)) // 30
// 当删除数量大于 1且只有两个参数时可以删除从起始下标开始的对应数量的元素 返回值为被删除的元素组成的数组
console.log(arr.splice(2,3)) // [30,40,50]
// 当删除数量为 1 且有三个参数时可以元素的替换 返回值为被删除的元素
console.log(arr.splice(2,1,66)) // 30
console.log(arr)// [10,20,66,40,50]
// 当删除数量为 0 且有三个及以上参数时可以元素的插入,插入位置为选中元素的前面 返回值为空数组
console.log(arr.splice(2,0,66,77,88)) // []
console.log(arr)// [10,20,66,77,88,30,40,50]

3、数组的查询

slice方法:查询指定范围内的元素

let arr = [10, 20, 30, 40, 50]
// 语法:arr.slice(起始下标,结束下标)
const newArr = arr.slice(2, 5) // 2 <= 范围 < 5
console.log(newArr) // [30,40,50]

二、数组的其他方法 concat方法:连接数组

let arr = [10, 20, 30, 40, 50]
const newArr1 = arr.concat([60, 70, 80])
console.log(newArr1) //  [10, 20, 66, 77, 88, 30, 40, 50, 60, 70, 80]

join方法:把数组元素按照分隔符拼接成一个字符串,如果不带参数默认使用逗号拼接

// 语法:arr.join('分隔符')
const nameArr = ['张三', '李四']
console.log(nameArr.join('&')); // 张三&李四
console.log(nameArr.join()); // 张三,李四

reverse方法:翻转数组

语法:arr.reverse()
console.log(arr.reverse()) //[50, 40, 30, 20, 10]

sort方法:数组排序

/* 语法:arr.sort((a,b)=>a-b)  从小到大排序
语法:arr.sort((a,b)=>b-a)  从大到小排序 
*/
let dataArr = [
{ name: '张三', age: 18 },
{ name: '李四', age: 22 },
{ name: '赵六', age: 30 },
{ name: '刘琦', age: 25 }
]
// 排序
dataArr.sort((a, b) => a.age - b.age)
console.log(dataArr) 
/* {name: '张三', age: 18}
{name: '李四', age: 22}
{name: '刘琦', age: 25}
{name: '赵六', age: 30}*/

二、数组的遍历方法

1、map方法:根据规则映射数组,得到"新数组";循环次数等于数组长度

let arr = [12, 34, 68, 92, 66]
const res = arr.map(item => item * 0.5)

2、forEach方法:遍历修改数组每一个元素值(不需要得到新数组,仅仅只是修改数组自身元素)

let arr = [
{ name: '商品1', select: false },
{ name: '商品2', select: true },
{ name: '商品3', select: false },
{ name: '商品4', select: false }
]
arr.forEach(item => item.select = true)
console.log(arr)

3、filter方法:根据条件筛选数组,将满足条件的元素放入新数组、筛选数组元素、批量删除数组元素(相当于筛选出不需要删除的元素)

const res = arr.filter(item => item.select)
console.log(res)
// 需求: 删除选中的商品
// 等价于: 帅选用户没有选中的商品
arr = arr.filter(item => !item.select)
console.log(arr)

4、reduce方法:为每一个元素执行一次回调,并的到最终结果

经典应用: 求累加和

let arr = [10, 34, 45, 78]
const res = arr.reduce((sum, item) => sum + item, 0)
console.log(res) // 167