数组:
对数组中每个元素进行处理的迭代器方法:
1:Map
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map方法不会改变原数组
2:Filter
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。filer方法不会改变原数组,并且不会处理空数组。
3:Reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
4:Find
find()方法接收一个函数作为筛选器,返回通过函数内部条件的第一个值,该方法不会改变原数组。相较于filter方法,该方法只执行到预计满足的第一个元素时就停止后面的执行。
5:Some
some()方法接收一个函数作为筛选器,返回通过函数内部条件的第一个值,该方法不会改变原数组。相较于Find方法,该方法返回的只是个执行结果的布尔值,而不是符合条件的元素值。
6:Every
every()方法接收一个函数作为筛选器,当数组中的每一个元素遍历执行都通过函数内部筛选条件时则返回true,否则返回false。该方法相较于find与some方法是会执行完所有的元素而不是遇见满足条件的元素就中止执行,并且需要所有元素都为真的情况下返回true,类似与并集处理: A&&B&&C == true ,A,B,C分别代表每个元素被执行筛选条件的结果。
7:ForEach
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
语法:array.forEach(function(currentValue, index, arr), thisValue)
该方法相当于官方提供的一个数组迭代器,功能类似jq的each方法,不过只能处理数组,jq的each可以处理数组和对象
总结:filter、reduce、some、every、find这几个方法作为筛选之用,有返回值,作用单一明确。map、forEach方法作为数据处理之用,可进行筛选、算数运算、增删字段等等,map有返回值,forEach可有可无
对象
1:DefineProperty
defineProperty()方法在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。该方法第三个参数支持设置get和set,从而可以利用该特性进行数据与视图的双向绑定,vue的双向绑定就是利用了该特性。
2:Keys
keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
3:Values
vlaues()方法会返回一个由一个给定对象的自身可枚举属性的值组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
4:Assign
assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。类似与jq的extend方法,需要注意的是该方法属于浅拷贝。