查了一些博客,整理出了一些ES6针对数组对象扩展的一些新方法,控制台写了一些实例代码,觉得有一些确实在开发中会非常实用。
- Array.of()
这个方法,会把传的参数变成一个数组,如果没参数,就返回一个空数组。
- arr.copyWithin(target,start,end)
这个方法是在一个数组内替换元素,会改变当前数组。
3个参数都应该是数值,都表示位置。
第一个参数:从该位置开始替换数据,必选
第二个参数:替换的数据开始的位置,必选
第三个参数:替换的数据结束的位置,不包含当前位置,是当前位置的前一个元素,即,前闭后开,可选。
三个参数都可以是负数,倒数。
- arr.find(fn, thisArg) 和 findIndex(fn, thisArg )
这个方法类似indexOf,返回第一个找到的时候的值或者下标位置,不会改变原数组
参数:fn(value,index,arr),一个回调函数,参数为:数组的每一个元素,下标,当前数组
第二个参数可以指定this的指向
- arr.fill(value,start,end)
这个方法是在为一个数组填充元素,会改变当前数组。
3个参数,
第一个参数:填充的值,必选
第二个参数:填充的值开始的位置,可选
第三个参数:替换的值结束的位置,不包含当前位置,是当前位置的前一个元素,即,前闭后开,可选。
值得注意的一点:当填充的值是对象的时候,实际被赋值的是这个对象的内存地址对象,而不单纯是这个对象的值,也就是说,当一个发生改变的时候,都会变了。
- arr.entries() ,arr.keys() ,arr.values()
这3个方法用于遍历数组,都会返回一个遍历对象(Iterator),用for...of循环可以分别遍历键值对,键名,键值
- arr.filter(fn,thisArg)
顾名思义,根据某些条件对原数组元素进行过滤,会返回一个新数组,不改变原数组
参数fn(value, index, arr)
三个参数:
第一个,数组的每一个元素,必选
第二个,数组元素的index
第三个,原数组
- arr.some(fn,thisArg)
根据某些条件对原数组遍历,如果一旦找到一个符合条件的会返回true,停止遍历,否则返回false,不改变原数组
参数fn(value, index, arr)
三个参数:
第一个,数组的每一个元素,必选
第二个,数组元素的index
第三个,原数组
- arr.every(fn,thisArg)
根据某些条件对原数组遍历,如果每一个元素都符合条件会返回true,一旦有一个元素不符合,则返回false,停止遍历,不改变原数组
参数fn(value, index, arr)
三个参数:
第一个,数组的每一个元素,必选
第二个,数组元素的index
第三个,原数组