【js】数组方法集锦
一、判断是否是数组
1.方法1(ECMAScript 5 定义的新方法)
var arr = [1,2,3,4,5]; console.log(arr.isArray())
2.方法2(自己定义方法)
var isArray = function(x) { return x.constructor.toString().indexOf("Array") > -1; } var arr=[1,2,3,4,5]; console.log(isArray (arr));
3.方法3(利用instanceof 运算符)
var arr = [1,2,3,4,5]; console.log(arr instanceof Array );
二、数组方法
1.原数组不受影响
toString() 把数组转换为数组值(逗号分隔)的字符串。
join() 方法也可将所有数组元素结合为一个字符串。【它的行为类似 toString(),但是您还可以规定分隔符:】
concat() 方法通过合并(连接)现有数组来创建一个新数组
slice() 方法用数组的某个片段切出新数组。
valueOf()返回数组对象的原始值。
forEach() 方法为每个数组元素调用一次函数(回调函数)【所有浏览器都支持 Array.forEach(),除了 Internet Explorer 8 或更早的版本】
reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。【所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本】
map() 方法通过对每个数组元素执行函数来创建新数组。【所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本】
filter() 方法过滤数组,返回一个新的数组。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
every() 方法检查所有数组值是否通过测试。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
some() 方法检查某些数组值是否通过了测试。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
indexOf() 方法在数组中搜索元素值并返回其位置。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
lastIndexOf()与 Array.indexOf() 类似,但是从数组结尾开始搜索 【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】
find() 方法返回通过测试函数的第一个数组元素的值。(多个符合条件时只返回第一个值)【老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本】
findIndex() 方法返回通过测试函数的第一个数组元素的索引。【老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本】
2.原数组受影响(简单记发:增删改排序)
pop() 方法从数组中删除最后一个元素,返回值:被删除的元素
push() 方法(在数组结尾处)向数组添加一个新的元素 返回值:新数组的长度
shift() 方法会删除首个数组元素 返回值:被删除的元素
unshift() 方法(在开头)向数组添加新元素 返回值:新数组的长度
splice() 方法可用于向数组添加删除元素 返回值:返回一个新数组
sort() 方法以字母顺序对数组进行排序 返回值:排序后新数组
reverse() 方法反转数组中的元素。返回值:倒序后新数组
三、数组迭代方法区别
1、forEach:遍历开始以后无法停止,如果要遍历整个数组,那就使用这个方法;
2、map:根据当前数组映射出一个新的数组;
3、some:遍历整个数组,返回值true就停止循环(返回false继续循环)
返回值:如果数组中的有一项回调函数返回true,那么结果为true,否则为false;(或者这样理解:数组别遍历完,那么结果为false,否则为true)
4、every:与some相反,返回false就停止循环(返回true就继续循环)
5、filter:过滤数组,返回一个新的数组
6、reduce:实现数据的累加
欢迎关注我,一起进步!扫描下方二维码即可加我QQ

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通