### 數組擴展
- 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年年終總結