JS-常用数组方法
前言
大部分的编程问题都与数据集合的操作有关,js的诸多方法让这些操作简单化。本文是我在复习js过程中总结的一些常用的数组方法,同时承接上文数据类型-引用数据类型数组的知识。
数组属性
数组在js中是对象类型,其基本属性 length: 表示数组长度
数组方法
javascript提供的数组方法很多,这里介绍常用的数组方法。值得我们注意的是,在使用的时候要注意区分一些方法修改当前数组,一些方法操作完成后返回数组。
例如:push() 和 concat() 方法
| 方法 | 作用 | 返回值 |
|---|---|---|
| push() | 向数组末尾添加一个元素 | 返回数组长度 |
| pop() | 删除数组末尾的一个元素 | 返回被删除的元素 |
| unshift() | 向数组头部添加一个元素返回数组长度 | 返回数组长度 |
| shift() | 删除数组头部的一个元素 | 返回被删除元素 |
| splice() | 为数组做删除、添加、替换操作 | 分别返回删除元素、无返回值、被替换元素 |
| fill() | 将固定值赋给数组固定位置 | 返回数组 |
| concat() | 连接数组 | 返回新数组 |
| reverse() | 将数组倒序 | 返回数组 |
| sort() | 对数组排序 | 返回数组 |
| slice() | 提取子数组 | 返回子数组 |
| copyWithin() | 将数组中一段复制到另一个位置 | 返回数组 |
| join() | 将数组转化为字符串,可指定间隔符,默认逗号隔开 | 返回字符串 |
| toString() | 将数组转化为字符串,默认逗号隔开 | 返回字符串 |
| indexOf() | 在数组中进行值匹配,从数组头部开始 | 有则返回元素下标,否则返回 -1 |
| lastIndexOf() | 在数组中进行值匹配,从数组末尾开始 | 有则返回元素下标,否则返回 -1 |
| findIndex() | 在数组中进行内容匹配,从数组头部开始,条件可为函数 | 有则返回元素下标,否则返回 -1 |
| findLastIndex() | 在数组中进行内容匹配,从数组末尾开始,条件可为函数 | 有则返回元素下标,否则返回 -1 |
| find() | 在数组中进行内容匹配,条件可为函数 | 有则返回元素本身,否则返回 null |
| some() | 在数组中查找是否至少有一个满足条件的元素 | 有则返回 true, 否则返回 false |
| every() | 在数组中查找是否所有元素均满足条件 | 是则返回 true, 否则返回 false |
| map() | 将数组改为想要的格式 / 拆分数组 | 返回数组 |
| filter() | 删除数组中不想要的元素 | 返回数组 |
| reduce() | 合并数组,归纳数组为一个值 | 返回值 |
push() 方法:
arr.push( content );
content 表示添加的元素
将 content 添加至数组末尾。 返回数组长度
pop() 方法
arr.pop();
删除数组最后一位元素。 返回被删除的元素
unshift() 方法
arr.unshift( content );
content 表示添加的元素
将 content 添加至数组头部。返回数组长度
shift() 方法
arr.shift();
删除数组的头部元素。返回被删除元素
splice() 方法
arr.splice(start, delete_num, content1, content2, ...);
start 表示开始操作的元素下标; delete_num 表示删除的元素个数; contentx...表示要替换或者添加的内容
①删除元素:返回被删除元素
②添加元素:无返回值
③替换元素:返回被替换元素
fill() 方法
arr.fill( content, start, end );
content 表示替换的内容; start 表示替换的开始下标; end 表示替换的结束下标+1;
将固定值赋给数组中的固定位置。返回数组
concat() 方法
arr.concat( target_arr );
target_arr 表示连接的数组;
将target_arr 数组连接在arr数组后面。返回数组
reverse() 方法
arr.reverse();
将数组 arr 倒序。返回数组
sort() 方法
arr.sort( [function(a, b) { return a - b; }] );
[]中的函数为比值函数,按照数值比值排序,返回排序后的数组,可不填,不填默认字符排序。返回数组
slice() 方法
arr.slice( start, end );
start 表示提取的开始下标; end 表示提取的结束下标;
从数组 arr 中提取子数组。返回子数组
copyWithin() 方法
arr.copyWithin(target, start, end);
target 表示复制的目标位置; start 表示从哪里开始复; end 表示复制到哪里结束;
将数组中一串有序的元素复制到数组的另一个位置。返回数组
join() 方法
arr.join([separator]);
separator 表示分隔符,不填默认逗号
将数组转换为字符串。返回字符串
toString() 方法
arr.toString();
将数组转换为字符串。返回字符串
indexOf() 方法
arr.indexOf(content);
content 表示查找的内容;
在arr数组中从头部开始寻找和content相同的元素, 返回其下标,未找到则返回-1
lastIndexOf() 方法
arr.lastIndexOf( content );
content 表示查找的内容;
在arr数组中从末尾开始寻找和content相同的元素, 返回其下标,未找到则返回-1
findIndex() 方法
arr.findIndex( [x => x == target] );
[]中填写匹配函数
查找符合条件的元素,与indexOf相比更加灵活。 返回符合条件的元素的下标,未找到则返回 -1
findLastIndex() 方法(新提案,google浏览器暂不支持, 可以忽略)
arr.findLastIndex( [x => x == target] );
[]中填写匹配函数
查找符合条件的元素,从数组末尾开始寻找, 返回符合条件的元素的下标,未找到则返回 -1
find() 方法
arr.find( [x => x == target] );
[]中填写匹配函数
查找符合条件的元素,从数组头部开始寻找, 返回符合条件的元素本身,未找到则返回 -1
some() 方法
arr.some( [x => x == target] );
[]中填写匹配函数
判断数组中是否有符合条件的元素,当存在有一个元素符合条件时,返回true, 否则返回false
every() 方法
arr.every( [x => x == target] );
[]中填写匹配函数
判断数组中是否所有元素符合条件,返回true, 否则返回false
map() 方法
arr.map();
将数组中的内容转化为开发者想要的格式
filter() 方法
arr.filter();
过滤器,删除数组中不需要的元素
reduce() 方法
arr.reduce(total, num);
将数组内容化为一个值,常用做累加器。