一,数组方法
1.filter()
对数组的每一项都运行给定的函数,返回结果为true的项组成的数组(返回的是一个集合)
2.map()
对数组的每一项都运行给定的函数,返回每次函数调用的结果组成的新数组(返回的是一个集合)
const tableData = [
{agentName:'委托人1',explain:'委托说明1',startDate:'2016-05-02',endDate:'失效时间1'},
{agentName:'委托人2',explain:'委托说明1',startDate:'2016-05-04',endDate:'失效时间1'},
{agentName:'委托人2',explain:'委托说明1',startDate:'2016-05-01',endDate:'失效时间1'},
]
let map = tableData.map(item=>item.startDate)
console.log(map) //['2016-05-02','2016-05-04','2016-05-01']
3.every()
对数组的每一项都运行给定的函数,每一项都返回true,则返回true
4.some()
对数组的每一项都运行给定的函数,有一项返回则返回true
二,ES6新增操作数组新方法
1.find()
传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它,并且终止搜索
2.findindex()
传入一个回调函数,找到数组符合当前规则的第一个元素,返回它的下标,终止搜索
3.copyWithin()
选择数组的某个下标,从改位置开始复制数组元素,默认从0开始复制,也可以指定要复制的元素范围
4.from()
将类似数组的对象(array-like object)和可遍历(iterable)的对象转为真正的数组
5.of()
用于将一组值,转换为数组,这个方法的主要目的,是弥补数组构造函数Array()的不足,因为参数个数的不同,会导致Array()的行为差异
6.includes()
在ES5,Array已经提供了 indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方面是没问题,就是不够语义化。另一个问题是不能判断是否有NaN的元素。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.indexOf(NaN))
ES6提供了Array.includes()函数判断是否包含某一元素,除了不能定位外,解决了indexOf的上述的两个问题。它直接返回true或者false表示是否包含元素,对NaN一样能有有效。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.includes('c'))
console.log('%s', arr1.includes('z'))
console.log('%s', arr1.includes(NaN))