多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 数组扩展 - Array.from() > 该方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map) ```javascript /* 1. 传一个参数直接返回该类数组的数组形式,且这个类数组必须有length属性,否则返回空数组 example 如下*/ let obj = { '1':'a', '2':'b', length:2 } console.log(Array.from(obj)) /* [undefined,'a'] length长度规定为2 obj的key为2的单元不在length长度之内,故舍去,0索引位置obj中不存在,所以以undefined占位 */ /* 2.第二个参数类似回调,对处理过后的数组进行便利 */ let obj1 = { '0': 0 '1':'a', '2':'b', '3':'c', '4':'d', '5':'e', length:6 } console.log(Array.from(obj1,x => x == 0 ? 0 : 'clouds' )); /*  [0, "clouds", "clouds", "clouds", "clouds", "clouds"] 该写法等同于下面 map写法 */ console.log(Array.from(obj1).map( x => x == 0 ? 0 : 'clouds')) ``` - Array.of() > Array.of方法用于将一组值,转换为数组。 ```javascript console.log(Array.of(1,2,3,4,5,6,7)) /* [1,2,3,4,5,6,7]*/ console.log(Array.of()) /* [] */ /* Array.of基本上可以用来替代Array()或new Array(),并且不存在由于参数不同而导致的重载。它的行为非常统一。 Array() // [] Array(3) // [, , ,] Array(3, 11, 8) // [3, 11, 8] */ ``` - copyWithin() >将数组指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组 ```javascript let arr = [1,2,3,4] console.log(arr.copyWithin(3,1)); /* arr[3] = arr[1] res: 1232 */ ``` - find() & findIndex() > find:用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。 > findIndex: 用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。 ```javascript /* find: */ let arr = [10,30,50,90, 99] arr.find( x => x < 50 ) /* 10 */ /* findIndex */ arr.findIndex(x => x === 99) /* 4 */ ``` - fill() > 使用给定值,填充一个数组。 ```javascript let arr = [1,3,3,4] console.log(arr.fill('a')) /* [a,a,a,a] */ arr.fill(2,1,2) /* [1,2,3,4] 第2,3个参数分别为填充起始点和填充结束点 */ ``` - includes() >返回一个布尔值,表示某个数组是否包含给定的值,是es7的扩展, 由于babel已支持,所以可用,类似 String的includes方法 ```javascript let lists = ['book','pen','cup'] lists.includes('book') /* true */ ``` - filter() >every 相同用法测试数组是否全部符合表达式 返回bealoon >创建一个包含原始数组子集的新数组。新数组的元素则是那些通过了所提供函数测试的元素,测试函数应返回true或false。 ```javascript var values = [1, 60, 34, 30, 20, 5] function lessThan20(val) { return val < 20 } var valuesLessThan20 = values.filter(lessThan20) console.log(valuesLessThan20) /*filter*/ ``` - 关于数组空位 > 数组的空位指,数组的某一个位置没有任何值。比如,Array构造函数返回的数组都是空位。 ```javascript let array = new Array(3) //[,,,]z /* 这里的 ''空, 与 [undefined] 是不同的, 遇到这个问题的时候再详细了解吧, 这里跑题了 */ ```