数组与对象的遍历

Python011

数组与对象的遍历,第1张

   forEach():数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。

   map(): 指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

   filter(): “过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。

   every() : 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。

   some() : 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

   reduce()和 reduceRight() : 这两个方法都会实现迭代数组的所有项,然后构建一个最终返回的值。reduce()方法从数组的第一项开始,逐个遍历到最后。而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。

这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。

   keys + forEach 之流 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)

   for in 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)

   Object.getOwnPropertyNames() 返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).

   Reflect.ownKeys(obj) 返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.

注:

JS数组reduce()方法详解及高级技巧

ES6之Reflect

.all?这是一个ruby方法,他的返回结果只有两个,true或者false,判断的是数组中每一个元素都是true的就返回true,只要有一个不是true就返回false,如[nil,22].all?返回的就是false。还有就是判断数组遍历运算过程中,每一个结果是不是true,如[1,2,3].all?{|w| w >1}这个的结果就是false。

你的例子中,作为判断对象的是一个空数组,不执行后面的代码,也没有一个元素是false的,所以返回的是true,这是我的见解

each:连续遍历集合中的所有元素,并做相应的操作,原集合本身不会发生变化。

map: 从集合中获取每个元素,并且传递给块,结果会返回新的数组,原集合发生变化

collect: 类似于map

inject:遍历整个集合,并且将集合中的元素,按照一定的方式累计,最后返回一个新的元素,原集合本省不会发生变化。