# 数组的常用方法
### splice(index,howmany,item1,…..,itemX)
方法用于插入、删除或替换数组的元素,这种方法会改变原始数组,很强大
index 表示开始位置,
howmany 表示删除多少个必须为数字,可以为0表示不删除,如果不填的话会从index位置删到最后
item1 表示要添加到数组的新元素
var arr= ["a", "b", "c", "d"];
arr.splice(2,1,"e","f"); //["a", "b", "e", "f", "d"] 从位置为2的地方删除一个元素并添加两个元素
### push()
在数组的末尾增加一个或多个元素,并返回数组的新长度
```
var arr = [1,2,3,4];
arr.push(5,6,7);
arr = [1,2,3,4,5,6,7];
```
### pop()
删除并返回数组的最后一个元素,若该数组为空,则返回 undefined。原数组改变。
```
var arr = [1,2,3,4];
var del = arr.pop();
//del = 4;
//arr = [1,2,3];
```
### unshift()
向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。
```
var arr = [1,2,3,4];
var res = arr.unshift(0);
//res = 5;
//arr = [0,1,2,3,4];
```
### shift()
删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回 undefined。原数组改变。
```
var arr = [1,2,3,4];
var res = arr.shift();
//res = 1;
//arr = [2,3,4];
```
### concat(arr1,arr2...)
合并两个或多个数组,生成一个新的数组。原数组不变。
```
var arr = [1,2,3,4];
var arr1 = ["a","b"]
var arr2 = [5,6]
var res = arr.concat(arr1,arr2);
//res = [1,2,3,4,"a","b",5,6];
//arr = [1,2,3,4];
```
### join()
将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。
```
var arr = [1,2,3,4];
var str1 = arr.join("-");
//str1 = [1-2-3-4];
```
### reverse()
将数组倒序。原数组改变。
```
var arr = [1,2,3,4];
arr.reverse();
//arr = [4,3,2,1];
```
### sort()
对数组元素进行排序。按照字符串 UniCode 码排序,原数组改变。
```
从小到大
var arr = [1,20,66,50];
var sortNum = function(a,b){
return a-b;
}
arr.sort(sortNum);//[1,20,50,66]
从大到小
var arr = [1,20,66,50];
var sortNum = function(a,b){
return b-a;
}
arr.sort(sortNum);//[66,50,20,1]
```
按照数组对象中的某个值进行排序
### filter()
过滤函数,返回符合条件的item 不会改变原数组
var arr = [1, 2, 3, 3, 2];
var r = arr.filter(function (item, index, self) {
console.log(item); // 依次打印'A', 'B', 'C'
console.log(index); // 依次打印0, 1, 2
console.log(self); // self就是变量arr
return item==2;
});
// console.log(r) [2,2] 返回符合条件的所有元素
### find()
方法用来返回数组中满足条件的第一个元素 不会改变原数组
var arr = [1, 2, 3];
var r = arr.find(function(item, index, self){ return item>=2;
});
//console.log(r) 2 返回满足条件的第一个元素
### indexOf(item,start)
方法可返回某个指定的字符串值在字符串中首次出现的位置。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");//a=2