## 判斷是不是數組類型
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
Array.isArray( arr ) // 返回true就是數組,否則就不是數組
~~~
<br>
## 數組合并
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.concat([2,3,4])//兩個數組合并
~~~
<br>
## 數組轉字符串
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var str = arr.join('-') //數組合并成字符串, 傳入的參數是分隔符
console.log(str)
~~~
<br>
## 字符串分割成數組
~~~
var str = "1-2-3-4-5"
var arr2 = str.split('-') //字符串分割成數組
console.log(arr2)
~~~
<br>
## 查找一個值在數組里面的下標
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var index = arr.indexOf(5); //數組查找元素的下標,找不到就返回-1
console.log(index)
~~~
<br>
## 數組刪除元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.splice(2, 1); //數組刪除元素 第一個參數是下標,第二個參數是刪除的數量
~~~
<br>
## 數組插入元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.splice(2, 0, 99); //數組插入元素 第三個參數以及后邊的參數是插入的值(支持插入多個)
~~~
<br>
## 數組后面添加元素(壓棧)
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.push(-100); //前面添加一個值
~~~
<br>
## 數組前面添加元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.unshift(-100); //前面添加一個值
~~~
<br>
## 數組后面刪除一個元素(出棧)
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.pop(); //后邊彈出(刪除)一個值
~~~
<br>
## 數組前面刪除一個元素
~~~
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.shift(); //前面彈出(刪除)一個值
~~~
<br>
## 數組倒轉(不能用現成函數)
~~~
var arr = [3,6,2,4,1,5]
var tmp = [];
for (var i = arr.length - 1; i >= 0; i--) {
tmp.push(arr[i])
}
console.log(tmp)
~~~
<br>
## 數組升序
~~~
var arr = [3,6,2,4,1,5]
arr.sort()
console.log(arr)
~~~
<br>
## 數組降序
~~~
var arr = [3,6,2,4,1,5]
arr.sort(function (a,b) {
return b-a
})
console.log(arr)
~~~
<br>
## 數組去重
~~~
var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
var newArr = [];
var len=arr.length;
for (var i = 0; i < len; i++) {
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
console.log(newArr);
~~~
<br>
## 偽數組是什么,怎么把偽數組轉化成真正的數組
無法直接調用數組方法或期望length屬性有什么特殊的行為,不具有數組的push,pop等方法,但仍可以對真正數組遍歷方法來遍歷它們。典型的是函數的argument參數,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬于偽數組。可以使用Array.prototype.slice.call(fakeArray)將數組轉化為真正的Array對象。
<br>
- 初級前端題
- 必會
- http協議
- 跨域
- cookie與storage
- 移動端問題
- 性能優化
- Vue全家桶
- 有哪些常用的es6語法?
- 項目
- 閉包
- JSON
- 數據類型與運算
- 數組
- DOM
- 字符串
- 要會
- async與await
- 正則
- this
- 數據加密
- 實時獲取數據
- 原生ajax
- 異步打印
- css相關
- 雜七雜八
- webpack
- 一般
- mvvm模式
- 異步請求
- XSS
- 其他dom問題
- 冷門
- 瀏覽器緩存機制
- 新
- 瀏覽器事件輪詢
- Promise
- 樹的深度優先與廣度優先
- 拷貝
- 繼承
- Vue
- 跨域
- 排序
- 瀏覽器
- 瀏覽器入門
- 瀏覽器內核知識
- 瀏覽器渲染原理
- 瀏覽器性能調優
- 自動化構建
- 字符編碼
- git
- 一些題目
- 其他
- 邏輯思維題
- 互聯網公司招聘信息如何閱讀
- bat面試