【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:实现数据的累加

posted on   smile轉角  阅读(32)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

导航

统计

点击右上角即可分享
微信分享提示