[TOC]
# Array對象的方法
## 1.instanceof關鍵字
*****
判斷對象是不是數組類型,是返回值是true,不是返回值是false
```
var arr=[];
console.log(arr instanceof Array);//true
```
<br>
## 2.isArray(對象)
判斷這個對象是不是數組,是返回值是true,不是返回值是false
*****
```
console.log(Array.isArray(arr));//結果是true
```
<br>
## 3.push(值1,值2...)
把值往數組**后面添加**,返回值也是**追加數據之后的數組長度**,參數的數據類型不限
```
var arr1=[10,20,30,40,50];
var result = arr1.push(100,200);
console.log(result,arr1);//返回結果:7,[10, 20, 30, 40, 50, 100, 200]
```
<br>
## 4.unshift(值1,值2...)
往數組**前面添加**,返回的是**改變后的數組的長度**參數數據類型不限;
```
var arr2=[10,20,30,40,50];
var result = arr2.unshift(100,200);
console.log(result,arr2);//返回結果:7,[100, 200, 10, 20, 30, 40, 50]
```
<br>
## 5.pop()
刪除數組的**最后一項**,參數無 **返回值是刪除的那一項**
```
var arr3=[10,20,30,40,50];
var result=arr3.pop();
console.log(result,arr3);//返回結果:50和[10, 20, 30, 40]
```
<br>
## 6.shift()
刪除數組的**第一項**,參數無** 返回值是刪除的那一項;**
```
var arr4=[10,20,30,40,50];
var result=arr4.shift();
console.log(result,arr4);//返回結果:10和[20, 30, 40, 50]
```
<br>
## 7.indexOf(元素值)
查看某個元素在數組里面的**索引**,如果**沒有這個元素返回值是-1**
```
var arr2=[10,20,30,40,50];
var index=arr2.indexOf(30);
console.log(index);//2
```
<br>
## 8.indexOf(n,m)
從索引m開始查看n在數組里面的索引值
<br>
## 9.lastIndexOf()
**查找從后往前找**,但是**索引仍然是從左向右的方式**,**找不到則返回-1**
<br>
## 10.join("字符串")
把**數組**按照指定的字符串**拼接成一個字符串**,如果**沒有參數就按默認的逗號**拼接成字符串,如果有參數就按照指定的字符串拼接成字符串
```
var arr2=["小白","小黑","小紅","小芳","小綠","小花"];
var str = arr2.join("|");
console.log(str);
//小白|小黑|小紅|小芳|小綠|小花
```
<br>
## 11.reverse()
**數組反轉** 參數無 **返回值是反轉后的數組**,(改變原有數組)
```
var arr3=[10,20,30,40,50];
var temp=arr3.reverse();//反轉
console.log(temp,arr3);//[50, 40, 30, 20, 10],[50, 40, 30, 20, 10]
```
<br>
## 12.sort()
數組排序 **返回值是排好序的數組**,改變原有數組。參數可傳可不傳,如果**傳參數**,參數是**回調函數**。如果**不傳參數**的時候**只能排10以內的數字**
*****
```
//不傳參數的sort()排序----從小到大
var ary=[1,2,3,6,5,4];
var temp=ary.sort();
console.log(temp); //結果:[1, 2, 3, 4, 5, 6]
console.log(ary); //結果:[1, 2, 3, 4, 5, 6]
```
*****
//sort()帶有參數的升序和降序
**冒泡排序**
```
//1、從小到大排序 a-b
升序
var ary=[1,2,3,6,5,4,13,12,15,16];
var temp=ary.sort(function (a,b) {
return a-b;//把原數組升序排
});
console.log(temp);//結果:[1, 2, 3, 4, 5, 6, 12, 13, 15, 16]
//2、從大到小排列 b-a
降序
var temp=ary.sort(function (a,b) {
return b-a;
});
console.log(temp);//結果:[16, 15, 13, 12, 6, 5, 4, 3, 2, 1]
```
<br>
## 13.slice(n,m)
從索引n開始獲取到索引m(**不包含m**)返回值是**獲取到的元素組成的新數組**
```
var ary=[10,20,30,40,50,60,70,80,90,100];
var temp=ary.slice(2,6);
console.log(temp); //結果是[30, 40, 50, 60] 從索引2開始獲取到索引6不包括索引6
```
<br>
## 14.splice(n,m,x/y/z...)
把數組從**索引n開始刪除m個元素**,用**x,y...替換刪除的m項**。返回值是**刪除的m項組成的新數組**
```
var ary=[1,2,3,4,5,6];
var temp=ary.splice(1,2,7,8,9,10);
console.log(temp);//返回結果是:[2, 3]這個是刪除的項組成的新數組,就是刪除了2,3
console.log(ary);//返回結果是:[1, 7, 8, 9, 10, 4, 5, 6]
```
<br>
//當m項是0的時候,它把x,y...替換項放到索引n的前面
```
var ary=[1,2,3,4,5,6];
var temp=ary.splice(1,0,7,8,9,10);
console.log(temp);//[] 返回空數組,因為沒有刪除
console.log(ary); //結果:[1, 7, 8, 9, 10, 2, 3, 4, 5, 6]
```
//當不寫x、y替換項的時候代表刪除數組的元素
```
var ary=[1,2,3,4,5];
var temp=ary.splice(1,2);
console.log(temp);//結果:[2, 3]
console.log(ary);//結果:[1, 4, 5]
```
<br>
## 15.splice()
**不傳參數**時,代表沒有對數組做任何操作,**返回一個空數組**
```
var ary=[1,2,3,4,5];
var temp=ary.splice();
console.log(temp); //結果:[]
console.log(ary);//結果:[1, 2, 3, 4, 5]
```
<br>
**splice(0) **
參數是**0** 的時候,代表**刪除整個數組**,**返回的是原數組的數據,原數組變為空數組**
```
var ary=[1,2,3,4,5];
var temp=ary.splice(0);
console.log(temp); //結果: [1, 2, 3, 4, 5]
console.log(ary);//結果:[]原數組變為空數組
```
- Javascript
- 組成
- Web API
- 初步認識DOM
- 經典案例 (使用獲取id的方法)
- 節點和元素
- 經典案例 (使用獲取節點和元素的方法)
- 函數
- 作用域鏈
- Array對象的方法
- String對象的方法
- 綁定事件
- 事件委托
- 邏輯運算
- js高級(面向對象、)
- 基本知識
- 數據類型
- 基本包裝類型的使用
- 定義變量的區別
- JavaScript對象的動態特性
- 關鍵字in
- 關鍵字delete
- 運算符
- 創建對象的方式
- 回調函數
- 高階函數
- 構造器屬性
- this指向
- hasOwnProperty屬性
- 私有成員和特權方法
- 面向對象和面向過程的基礎
- 異常捕獲
- 構造函數和普通函數的區別
- 構造函數的補充
- 原型
- 原型圖
- 獲取原型對象的方法
- 原型對象的訪問和設置
- 判斷某個對象是否是指定實例對象的原型對象
- constructor
- isPrototypeOf
- instanceof
- 檢測對象是公有還是私有
- 核心概念
- 繼承
- 混入式繼承
- 原型式繼承
- 原型鏈繼承
- 借用構造函數繼承(call繼承,經典繼承)
- 組合式繼承(推薦)
- class繼承
- __ proto __屬性
- call方法和apply方法
- Fuction相關知識
- 創建函數的方式
- eval函數
- 淺拷貝和深拷貝
- 淺拷貝
- 深拷貝
- Object相關知識
- Object原型屬性和方法
- Object靜態成員對象
- 案例
- 數組去重
- 閉包
- 語法
- DOM事件和閉包
- 定時器和閉包
- 即使對象初始化
- 閉包的變形
- 設計模式
- 單例模式
- 發布訂閱模式(觀察者模式)
- 工廠模式
- 命名空間模式
- 同步和異步
- 垃圾回收機制
- get和set
- JQuery
- 動畫方法
- 事件
- 方法
- 節點
- 方法er
- HTML + CSS
- 經驗
- flex布局
- px,em ,rem區別
- 清除浮動
- Less
- UI框架
- 一.Bootstrap框架
- 常用類名
- 二 .Animate.css
- 三.WOW.JS
- 四.scrollReveal.js
- 五.zepto框架
- zepto選擇器
- 滑動事件
- tap觸摸事件
- zepto動畫
- 六,swipe框架
- 分頁器
- 左右按鈕和循環輪播
- 底部滾動和輪播方向
- 自動播放和切換效果
- 移入移除事件
- swipe結合animate.css
- 總結
- 滾滾屏
- 自動化構建工具
- 1.gulp
- 使用gulp編譯less成css,并最終壓縮css
- 壓縮css
- 合并和壓縮js
- 壓縮圖片
- 編寫server服務
- 包管理器
- 介紹
- brew
- npm十全大補湯
- ES6
- class類
- class類的使用
- class類的繼承結構
- let 和const
- 結構語法
- 模板字符串
- 化簡寫法
- 形參的默認值
- ...rest參數
- rest剩余參數
- 擴展參數
- 正則表達式
- 創建正則表達式的方式
- 構造函數
- 字面量的方式
- 其他(修飾符)
- 判斷是否匹配成功
- 正則表達式案例
- 常見的匹配原則
- 驗證密碼長度
- 表單驗證
- 正則提取
- 正則替換
- vue
- 插值操作
- Mustache語法
- 過濾器
- 綁定相關知識
- 綁定對象
- 單向綁定
- 雙向綁定
- 綁定屬性
- 動態綁定style
- 綁定事件
- 補充
- 綁定語法
- 基礎
- vue介紹
- MVVM
- 計算屬性
- 指令
- v-cloak
- 顯示和隱藏
- 循環
- 自定義指令
- 本地緩存
- localStorage
- sessionStorage
- 對象劫持
- 組件
- 局部組件
- 父子組件
- 全局組件
- 組件訪問實例數據
- 父傳子
- 子傳父
- 兄弟傳兄弟
- 插槽
- methods,computed,watch的區別
- Vue.observable()
- vue.config.js配置
- 修飾符
- .sync修飾符
- $attrs和$listeners
- Node.js
- 使用Node執行js代碼的兩種方式
- 交互模式
- 解釋js文件
- http模板
- request對象的使用
- express框架
- 安裝
- post
- 獲取請求參數
- post返回頁面
- 重定向到別的接口
- get
- 返回頁面
- get獲取請求參數
- 請求靜態資源
- 熱重啟
- Ajax
- 請求方式
- get請求
- post請求
- jQuery中的ajax方法
- JQuery中的get請求
- jQuery中的post請求
- 微信小程序
- 認識
- 引入樣式的方式
- 綁定數據
- 小程序組件
- scroll - view 可滾動視圖區域
- 發起請求
- template模板
- rich-text
- web-view
- open-data
- checkbox組件
- label組件
- radio組件
- picker組件
- swiper組件
- Git
- 跨域
- 左側固定,右側自適應
- vuex
- 如何解決vuex頁面刷新數據丟失問題
- 數據結構
- 樹
- 問題累積
- Axios
- 前端路由