### 数组扩展
- 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] 是不同的, 遇到这个问题的时候再详细了解吧, 这里跑题了 */
```
- 01.let-const
- 02.对象数组解构&赋值
- 03.字符串扩展,数值扩展,数组扩展
- 04.数组扩展
- 05.对象扩展
- 06.06.Symbol原始数据类型
- 07.set数据结构
- 08.map数据结构
- 09.proxy与Reflect
- 10.类
- 11.Promise
- 12.Iterator(迭代器)
- 13.Generator(生成器)
- 14.module与模块化
- 15.es6学习总结
- 记录- Vue拖拽实例
- 记录-git使用天坑之分支切换
- node -- session & cookie & localStorge
- 18.12关于前端战略技术储备与问题反馈
- Vue组件通信方式总结以及遇到的问题
- 01.版本回溯以及文件修改
- 02.远端控制
- 03.分支管理
- node 入门 留言板
- nodejs模块与 commonjs 规范
- 19年技术发展规划
- JS错误处理 -> 提升程序健壮性
- Git 基本使用
- 18年年终总结