【JavaScript进阶教程】数组遍历新方法的说明及使用
文章已被专栏收录:JavaScript进阶教程
作者:卡卡西最近怎么样?
文章简介:
欢迎来到JavaScript高级学习。ES5扩展了JS数组、字符串等内置对象的方法。本文我们要掌握的是Array内置对象新增的常用迭代方法,即forEach()、filter()、some()、every()等,这些新方法可以让我们更方便地操作数组。
1:类的本质是什么
2:forEach()方法
ForEach()格式
forEach()方法用法
三:filter()方法
过滤器()格式
filter()方法的使用
实施过程
四:some()方法
一些()格式
some()方法使用
实施过程
五:every()方法
every()的格式
every()方法使用:
实施过程
一:类的本质是什么
班级性质是什么?首先,我们看一下以下代码的输出:
脚本类Animal{}console.log(typeofAnimal);/脚本
我们惊奇地发现,类的本质就是函数,或者我们可以这样理解,类只是构造函数的一种高端写法。那么既然是函数,是不是也具有构造函数的一系列特征呢?例如,是否有原型对象?类创建的实例化对象是否具有__proto__属性?我们来确认一下:
脚本类动物{构造函数{this.name=name;this.age=年龄;}eat(){console.log('我正在吃东西');}}vardog=newAnimal('旺财',5)console.log(Animal.prototype);console.log('----------------------------------------');console.log(dog.__proto__);console.log('--------------------------------------');console.log(Animal.prototype===dog.__proto__);/脚本
这个输出结果和我们学过的构造函数的属性一模一样。已经证明,ES5中构造函数的属性在ES6的类中也具备。可以说类是构造函数的语法糖。
【语法糖】语法糖是一种实现相同功能但更方便的书写方式。我们学过的自增是一种语法糖。就是i=i+1的语法糖
课程精髓总结:
类的本质是函数类内部的方法都在该类的prototype对象的prototype属性中。类的实例化对象还有一个__proto__属性,该属性指向该类的实例化对象。类是构造函数二:forEach()方法
的语法糖forEach()可以用于数组遍历,其参数是回调函数
array.forEach(函数(currentValue,index,arr){.})
参数currentValueindexarr参数含义数组当前值,写为value,可以是数组当前值的索引数组本身
scriptvararr1=[1,2,3,4,5,6]arr1。forEach(function(value,index,arr){console.log('当前值为:'+value);console.log('当前值的索引为'+index);console.log('数组本身就是'+arr);console.log('----------------------------------');})/脚本
这样就实现了遍历数组的功能,可以方便的得到当前索引。
注意:参数不需要的话不能省略
三:filter()方法
filter()用于过滤数组元素,返回符合条件的数组元素。它返回一个新数组并需要一个新定义的空数组来接收它。它的参数也是一个回调函数。
varnewarray=array.filter(function(currentValue,index,arr){.})
参数currentValueindexarr参数含义数组的当前值,写为value,是数组当前值的索引数组本身
scriptvararr1=[1,2,3,4,5,6]varnewarr=arr1.filter(function(value,index,arr){returnvalue%2==0;})console.log(newarr);/脚本
首先获取数组第一个元素,如果不满足条件,则继续下一个元素,然后获取第二个元素,如果满足条件,放入新数组newarr中,然后获取第三个元素元素,如果不满足条件,继续下一个元素,然后取第四个元素,如果满足条件,继续放入newarr…以此类推。注意:需要一个新定义的数组来接收过滤后的数组。如果不需要参数,则不能省略
四:some()方法
some()用于判断数组中是否有符合要求的元素。返回结果是一个布尔值。如果存在则返回true,如果不存在则返回false。需要参数来接收返回的布尔值。
varflag=array.some(function(currentValue,index,arr){.})
参数currentValueindexarr参数含义数组当前值,写为value,是数组当前值的索引数组本身
返回true:
脚本vararr1=[1,2,3,4,5,6]varflag=arr1.some(function(value,index,arr){returnvalue==6;})console.log(flag);/脚本
返回错误情况:
脚本vararr1=[1,2,3,4,5,6]varflag=arr1.some(function(value,index,arr){returnvalue==7;})console.log(flag);/脚本
第一个返回true的执行流程:
首先使用数组的第一个元素来判断是否不满足条件。继续下一个元素,下一个元素不满足条件。然后继续下一个元素。下一个元素满足条件并返回true。如果不继续执行判断,则第二次返回false执行过程:
首先使用数组的第一个元素来判断是否不满足条件。继续下一个元素,下一个元素不满足条件。然后继续下一个元素。下一个元素也不满足条件。继续下一个元素.以此类推,直到最后一个不满足条件,返回false。注意:您需要定义一个参数来接受布尔值。并且判断过程中一旦满足某个条件,就不再进一步判断,直接返回true。但是,仅当不满足任何条件时才会返回false。不需要的参数不能省略
五:every()方法
every()用于判断数组中所有元素是否满足要求。返回结果是一个布尔值。如果全部满足,则返回true。如果其中之一不满足,则返回false。需要参数来接收返回的布尔值。
varflag=array.every(function(currentValue,index,arr){.})
参数currentValueindexarr参数含义数组当前值,写为value,是数组当前值的索引数组本身
返回true:
脚本vararr1=[1,2,3,4,5,6]varflag=arr1.every(function(value,index,arr){returnvalue0;})console.log(flag);/脚本
返回错误情况:
脚本vararr1=[1,2,-3,4,5,6]varflag=arr1.every(function(value,index,arr){returnvalue0;})console.log(flag);/脚本
第一个返回true的执行流程:
首先,使用数组的第一个元素来判断是否满足条件。继续下一个元素,下一个元素也满足条件。然后继续下一个元素,下一个元素也满足条件。继续……依此类推,直到结束。如果一个元素也满足条件,则返回true,第二个元素返回false。执行过程:
首先使用数组的第一个元素来判断。如果满足条件,则继续下一个元素。下一个元素也满足条件。然后继续下一个元素。如果下一个元素不满足条件,则返回false,不再继续判断。注意:需要定义一个参数来接受布尔值。并且在判断过程中,一旦其中一个条件不满足,则不再进行判断,直接返回false。但是,只有满足所有条件时才会返回true。不需要的参数不能省略
CSS系列-右侧块级元素的实现如下:HTML:divclass='parent'divclass='block'/div/div复制代码如果希望块级元素位于右侧…
CSS可以轻松实现‘磨砂玻璃’效果毛玻璃1.background-filt属性2.filter属性3.background-filterfilter4.参考1.…
当点击文本时,css可以自动改变颜色。实现功能说明:如下图所示,点击不同的文字可以切换到不同的页面。同时,该选项卡的文本可以相应地改变颜色。其他未选中的状态默认…
React如何获取DOM并获取组件实例文章目录React获取DOMref的方式获取DOM元素ref获取组件实例React获取DOM的方式ref获取DOM元素在R…
React错误map()不是函数当我们对不是数组的值调用map()方法时,会出现“TypeError:映射不是函数”错误。要解决此错误,请console.log…
2024-10-23 10:48:05
2024-10-23 08:48:12
2024-10-23 06:36:10
2024-10-23 04:48:07
2024-10-23 02:57:05
大家好,今天小编关注到一个比较有意思的话题,就是关于学校才艺培训目的和意义的问题…
大家好,今天小编关注到一个比较有意思的话题,就是关于学电脑编程需要电脑专业吗的问…