博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS数组重要方法
阅读量:6207 次
发布时间:2019-06-21

本文共 1362 字,大约阅读时间需要 4 分钟。

forEach和for循环的区别:

forEachfor循环都可以用来处理数组数据,做遍历处理。在做全体数据处理的时候,推荐用forEach,书写方便、直观、简洁。但是遇到需要对符合条件的数组项做筛选处理的时候推荐使用for循环,原因在于for循环可以打断(break)跳出循环,而forEach方法不可以,只要调用就会对所有的数组项做对应处理,有时会多做无谓的劳动,浪费资源。 arr.forEach(function(item, index, arr){})

map方法的使用:

map方法就是对数组的每一项调用函数,然后返回一个新的数组。

arr.map(function(item, index, arr){
return something})举个例子:arr = [1,22,10,20];arr2 = arr.map(item => {
return 2*item})arr2 // [2,44,20,40]map方法还可以把字符串转换为数组:var str = "text";var map = Array.prototype.map;var strArr = map.call(str,function(item){
return item+10});strArr// ["t10","e10","x10","t10"]复制代码

这里我们注意到“text”是字符串不是数组,那么他怎么可以调用数组方法呢?可以回想一下字符串是不是支持for...in, 是不是可以通过 str[index]去获取对应下标的字符?原来字符串对象是类数组,类数组对象是可以调用map方法的,只是不能直接调用,因为该对象的构造函数的原形对象上没有该方法。而数组对象的map方法存在于Array构造函数的原形对象上。所有先获取到map方法再通过call方法调用。Array.prototype.map.call([this],arguments)

filter方法 返回一个由符合条件的数组项组成的数组。

var arr =  [1,10,20,30];var brr =  arr.filter((item)=>{ return item>10; })        //  brr   [20, 30] 复制代码

注意: 这里的箭头函数内部必须返回一个值,这个值转换成布尔值之后决定返回的数组中是否包含该项,true则包含,false则不包含。

every() 方法 检测数组中是否每一项都符合函数中的条件。

var arr =  [1,10,20,30];var flag =  arr.every((item)=>{ return item>10; })    // flag  false复制代码

这里flag为false是因为这个数组中存在不大于10的项。这里的箭头函数同样需要返回一个布尔值,如果不返回的话,flag就会是false。 还有调用every的数组不能为空数组,如果为空则返回的值一直返回true。

some() 方法和every()方法恰恰相反。

只要有一个数组项符合条件就会返回true,剩下的数组项就不会再执行。调用some方法的数组同样不能为空,如果是空的话就会返回false。

转载地址:http://urhca.baihongyu.com/

你可能感兴趣的文章
SeaJS 模块化加载框架使用
查看>>
VMware Workstation 8安装CentOS 6字符界面
查看>>
print函数用法总结
查看>>
spring 整合redis
查看>>
会议论文重新投稿算不算侵权?这肯定是所多人都遇到过的问题(转)
查看>>
JBoss配置解决高并发连接异常问题(转)
查看>>
1.1线性方程组
查看>>
2013nanjingJ
查看>>
PHP中使用foreach引用需要注意的问题
查看>>
距离的计算及分页排序
查看>>
[日常] Go语言圣经-Slice切片习题
查看>>
python while循环语句
查看>>
UI线程同步
查看>>
Centos安装zeromq, jzmq
查看>>
java的HashMap 原理
查看>>
宿主进程 [*.vshost.exe] & [*.vshost.exe.config]
查看>>
JS自学笔记01
查看>>
cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
查看>>
ibatis源码学习2_初始化和配置文件解析
查看>>
剖析一个由sendfile引发的linux内核BUG
查看>>