大家好,刚开始写帖子,如果写的不对的地方,请大家多多指教哦!!!
概述
什么是数组? 数组是一种特殊的变量,它能够一次存放一个及以上的值。
描述:数组(arry)是按照一定顺序排列的一组值,每个值都拥有自己的编号,编号从0开始,整个数组用方括号来表示。
注意:
- 数组是按照一定顺序排列的一组值,顺序体现在下标,下标是从0开始。
- 数组元素:数组中的每一个值都称为数组元素,数组元素可以是任意类型。
常用的数组的方法
1.合并数组----concat()
描述:连接两个或多个数组,并返回已连接数组的副本。
语法:
arr.concat(arr1,arr2,arr3,···)
2.向数组末尾新增元素----push()
描述:将新元素添加到数组的末尾,并返回新的数组的长度。
语法:
arr.push(元素1,元素3,元素3...)
3.数组末尾删除元素----pop()
描述:删除数组的最后一个元素,并返回该元素。
语法:
arr.pop()
4.向数组头部新增元素----unshift()
描述:将新元素添加到数组的开头,并返回新的长度。
语法:
arr.unshift(元素1,元素3,元素3...)
5.数组头部删除元素----shift()
描述:删除数组的第一个元素,并返回该元素。
语法:
arr.shift()
6.数组任意位置删除、新增、替换数组元素----splice()
描述:在数组的任意的位置删除,新增,替换数组的元素。
语法:
arr.splice(起始索引,删除个数,新增元素)
7.查找数组中的元素----indexOf()
描述:在数组中搜索元素并返回其位置。注意:有就返回第一次出现该元素的索引,没有就返回-1。
语法:
arr.indexOf(要查找的元素,开始查找的索引)
8.遍历数组,返回一个新数组----map()
描述:遍历当前数组,返回一个新的数组。
语法:
arr.map((v,i)=>{
return ...
})
// v:表示当前循环的每一项元素。
// i:表示当前循环元素的索引值。
9.查找数组中只要有一个满足条件的元素----some()
描述:查找数组中只要有一个满足条件的元素,如有就返回为true,否则为false。
语法:
arr.some(()=>{
return 条件表达式;
})
10.查找数组中所有满足条件的元素----every()
描述:查找数组中所有满足条件的元素,满足返回为true,不满足返回为false。
语法:
arr.every(()=>{
return 条件表达式;
})
11.过滤满足条件的所有元素----filter()
描述:过滤满足条件的所有元素,返回满足条件的新的数组。
语法:
arr.filter(()=>{
return 条件表达式;
})
12.查找数组中第一次满足条件的值----find()
描述:查找数组中第一次满足条件的值。如果有就返回当前的元素,没有则返回undefined。
语法:
arr.find(()=>{
return 条件表达式;
})
13.查找数组中第一次满足条件的值的索引----findIndex()
描述:查找数组中第一次满足条件的值的索引。如有就返回当前值的索引,没有返回-1。
语法:
arr.findIndex(()=>{
return 条件表达式;
})
14.将数组元素,以指定字符串进行拼接----join()
描述:将数组元素,以指定字符串进行拼接,返回字符串。
语法:
arr.join("自定义连接字符")
// 默认分隔符是逗号 (,)
15.查找数组元素----includes()
描述:查找数组中的元素,找到则返回true,没找到则返回false。
语法:
arr.includes(要查找的字符,开始查找的索引)
16.反转数组----reversr()
描述:该方法是反转数组中元素的顺序。注意:该方法会改变原始数组。
语法:
arr.reverse()
17.数组排序----sort()
描述:方法对数组的项目进行排序。排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。
语法:
arr.sort((a,b)=>{
return a-b; // 重大到小排列
return b-a; // 重小到大排列
})
18.多维数组转换为一维数组----flat()
描述:将多维数组转换为一维数组。
语法:
arr.flat(n) // n表示数组层数
19.截取数组元素----slice()
描述:截取开始索引到结束索引之间的元素,左闭右开(包含开始,不包含结束)。
语法:
arr.slice(开始索引,结束索引)
20.遍历数组----forEach()
描述:遍历数组元素,操作原素组。
语法:
arr.forEach((v,i)=>{
js操作
})
// v:表示当前循环的每一项元素。
// i:表示当前循环元素的索引值。
21.将数组转换为字符串----toString()
描述:将数组转换为字符串,并返回其结果。
语法:
arr.toString();
22.reduce()
reduce()定义:
reduce()方法接受一个函数作为累加器,数组中的每一个值(从左到右)开始缩减,最终计算为一个值。
reduce()可以作为一个高阶函数,用于函数的compose(构成、组成)。
reduce()对于空数组不会执行回调函数。
语法:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
| 参数 | 描述 |
|---|---|
| function(total, currentValue, index, arr) | 必须。用于执行每个数组元素的函数。 |
| initiaValue | 可选。传递给函数的初始值。不传的时候会把第一项作为初始值,但是第一项不会执行reduce方法 |
| 参数 | 描述 |
|---|---|
| total | 必须,初始值,或者计算结束后的返回值 |
| currentValue | 必须。当前元素 |
| currentIndex | 可选。当前元素的索引 |
| arr | 可选。当前元素所属的数组对象 |
例1:对数组里面的数字进行四舍五入相加到一起
var numberArr = [1, 2, 3, 4];
function Sum(total, num) {
return total + Math.round(num);
}
function fn(item) {
const res = numberArr.reduce(Sum, 0);
}