[TOC]
# 數組
## 1.遍歷數組
~~~
var arr = [1,2,3];
~~~
1.1
~~~
for(let i=0;i<arr.length;i++){
console.log(arr[i]+",");
}
~~~
1.2
~~~
for(let k in arr){
console.log(arr[k]+";");
}
~~~
1.3
~~~
for(let k of arr){
console.log(k);
}
~~~
1.4
~~~
arr.forEach((v,k)=>{
console.log(v);//數組值
/* console.log(k);//數組下標 */
})
~~~
## 2.數組的添加
### 2.1添加
~~~
<script>
/*
增加:
1.push 從后增加,會改變數組的結構
2.unshift 從前增加,會改變數組的結構
3.concat() 從后增加,不會改變數組的內容
*/
var arr = [1,2,3,4];
// arr.push(5,6,7);
// arr.unshift(-1,0);
var b = arr.concat(8,9);
console.log(b)
console.log(arr)
</script>
~~~
### 2.2復制
~~~
<script>
var arr = [1,2,3,4,5];
/* var b = [];
for(let i=0;i<arr.length;i++){
b.push(arr[i]);
} */
var b= [].concat(arr);
console.log(b);
/* var b = arr.slice(0);
console.log(b); */
</script>
~~~
## 3.數組的刪除
~~~
<script>
/*
shift()-->從頭刪除并返回第一個數組值
pop()-->從后刪除并返回第一個數組值
*/
var arr = [1,2,3,4,5];
arr.shift();
arr.pop();
console.log(arr);// [2,3,4]
</script>
~~~
## 4.數組的修改
~~~
<script>
/*
splice(index,howmany,item)
index-->從哪里開始
howmany -->刪除幾個
item-->在刪除的地方添加的值
*/
var arr = [1,2,3,4,5];
arr.splice(4,0,8,9);
console.log(arr);
</script>
~~~
## 5.數組查詢
~~~
<script>
/*
查詢數組中值的下標
arr.indexOf(value)
*/
// var index = arr.indexOf(5);
// console.log(index);
/*
slice--截取
arr.slice(startIndex,lastIndex)-->包含startIndex,不包含lastIndex
*/
var arr = [1,2,3,4,5];
console.log(arr.indexOf(5));//查數組下標,若沒有這個值,則返回 -1
var b = arr.slice(1,3);
console.log(b);//[2,3]
console.log(arr);//[1,2,3,4,5]
</script>
~~~
## 6.splice(需掌握)
~~~
<script>
/*
arr.splice(index,howmany,item) 增加
arr.splice(index,howmany) 刪除
index -->必須,整數,規定添加或者刪除的位置,使用負數,從數組尾部規定位置。
howmany-->必須,要刪除的數量,如果為0,則不刪除項目。
item-->可選,向數組添加的新項目。
*/
var arr = [1,2,3,4,5];
/* arr.splice(2,0,8);
console.log(arr); */
arr.splice(1,2);
console.log(arr);//[1,4,5]
</script>
~~~
## 7.min、max
**...arr展開數組**
~~~
var arr = [1,2,3,4,5];
//...arr展開數組
var max = Math.max(...arr);
console.log(...arr);
console.log(max);
console.log(Math.min(...arr));
~~~
## 8.join
~~~
/*
join 通過特定的分割符,將數組拼接成字符串
*/
var arr = ["green","red","yellow"];
var str = arr.join(",");
console.log(str);
~~~
## 9.數組排序
~~~
var arr = [2,0,5,4,7,8,1,2];
var copyarr = [...arr];
var d = arr.sort(function(a,b){
return a-b;
})
var e = copyarr.sort(function(a,b){
return b-a;
})
console.log(d);
console.log(e);
console.log(arr);
~~~
## 10.prototype
* 該屬性使您有能力向對象添加屬性和方法
~~~
<script>
//在原型上定義一個方法,所有實例化的對象都共享這個方法
Array.prototype.max = function(arr){
return Math.max(...arr);
};
var arr = [1,2,3,4];
console.log(arr.max(arr));
</script>
~~~
## map()遍歷
map(value,index,array){}
**參數:value數組中的當前項,index當前項的索引,array原始數組;**
~~~
//有返回值,可以return 出來。
var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,input) {
return item*10;
})
console.log(res);//-->[120,230,240,420,10]; 原數組拷貝了一份,并進行了修改
console.log(ary);//-->[12,23,24,42,1]; 原數組并未發生變化
~~~