js中遍历数组加到新数组(js数组遍历生成新对象)

作者:电脑培训网 2024-05-04 08:04:43 82

【JavaScript进阶教程】数组遍历新方法的说明及使用

文章已被专栏收录:JavaScript进阶教程

js中遍历数组加到新数组(js数组遍历生成新对象)

作者:卡卡西最近怎么样?

文章简介:

欢迎来到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()可以用于数组遍历,其参数是回调函数

forEach()的格式:

array.forEach(函数(currentValue,index,arr){.})

参数currentValueindexarr参数含义数组当前值,写为value,可以是数组当前值的索引数组本身

forEach()方法使用:

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()用于过滤数组元素,返回符合条件的数组元素。它返回一个新数组并需要一个新定义的空数组来接收它。它的参数也是一个回调函数。

filter()的格式:

varnewarray=array.filter(function(currentValue,index,arr){.})

参数currentValueindexarr参数含义数组的当前值,写为value,是数组当前值的索引数组本身

filter()方法使用:

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。需要参数来接收返回的布尔值。

some()的格式:

varflag=array.some(function(currentValue,index,arr){.})

参数currentValueindexarr参数含义数组当前值,写为value,是数组当前值的索引数组本身

some()方法使用:

返回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。需要参数来接收返回的布尔值。

every()的格式:

varflag=array.every(function(currentValue,index,arr){.})

参数currentValueindexarr参数含义数组当前值,写为value,是数组当前值的索引数组本身

every()方法使用:

返回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。不需要的参数不能省略

创作不易,给个支持吧!!!

相关推荐

热门推荐

猜你喜欢