// 数组方法 push()

// push(参数1,参数2,参数3)方法可以把参数指定元素依次添加到数组的末尾,并返回添加元素的数组长度
// 其中push()可以传入多个元素,实现多元素的同时插入。
var arr = [1,2,3]

arr.push(4);

console.log(arr) //1,2,3,4

// unshift()
// unshift(参数1,参数2,参数3)方法可以把参数指定的元素依次添加到数组前面,并且
// 返回添加元素的数组长度。其中unshift()可以传入多个元素,实现多元素同时插入

var arrunshift=[1,2,3,5];

arrunshift.unshift("头插");

console.log(arrunshift); //头插,1,2,3,5

// pop()方法可删除数组最后一个元素,并返回弹出的元素

var arrpop = [1,2,3];

arrpop.pop();

console.log(arrpop) //1,2

// shift() 方法可删除第一个元素,并返回删除的元素。

var arrshift=[1,2,3,4];

arrshift.shift();

console.log(arrshift); //2,3,4


// sort() 方法用于按某种规则排序数组,当前参数为空时,按字典序(即元素的 Unicode编码从小到大排序)
// 当参数为一个匿名函数时,将按匿名函数指定规则排序数组元素。

var arrsort=[5,3,4,2,1];

arrsort.sort();

console.log(arrsort) //1,2,3,4,5

// reverse() 方法可返回当前数组倒叙排序形式。

var arrreverse = [1,2,3,4,5];

arrreverse.reverse();

console.log(arrreverse); //5,4,3,2,1

// slice() 方法返回包含从数组对象中 第一个索引值到 第二个索引值 -1 之间的 元素组成的新数组
// 数组截取

var arrslice = [1,2,3,4,5];

var newarr= arrslice.slice(1,3) ;
// 截取数组 从 第二个元素 到 第三个前

console.log(newarr) //2,3

// splice() 方法三个形态

// splice(参数1:index(索引值),参数2:length(长度),参数3:element(元素))

// 根据参数的不同 splice 可以有三种形态和功能:

// (1) 删除形态: 因为删除 不需要第三个参数 element

// arr.splice(index,length);

var arrTwoSplice=[1,2,3,4,5,6];
//会影响原数组
var newTwoSplice = arrTwoSplice.splice(0,2); // 1,2

console.log(newTwoSplice); //3,4,5,6

//(2)替换形态: 第三个参数是要替换的新元素,

// arr.splice(index,length,element);
// 表示从索引 index 开始 把 index 到 index+length-1 的数组元素替换成 element

var Three = arrTwoSplice.splice(0,2,10);

console.log(arrTwoSplice) // 10 ,3,4,5,6

console.log(Three) // 1,2

// (3) 添加形态: 第二个参数 length 必须取值为 0

arrTwoSplice.splice(2,0,100)

console.log(arrTwoSplice) //1,2,100,4,5,6

// forEach() 方法对数组的每个元素执行一次回调函数,传参是回调函数。

var arrforeach = [1,2,3,4,5]

arrforeach.forEach(function(i){

console.log(i) //1,2,3,4,5

})

// filter() 方法用于创建一个新的数组,其中的元素是指定数组中所有符合指定函数要求的元素,
// 传参是我们规定返回的要求对应的函数。

var arrfilter = [1,2,3,4,5];

var new_arr = arr.filter(function(e){

if(e<3){

return true;

//观察一下传参的函数,这个函数判断元素是否小于3小于于3,返回true,于是相当于告知filter()方法,这个元素符合要求,于是小于3的值被赋给了新数组

}else{

return false;
}

})

console.log(new_arr) //1,2

// map()方法用于创建一个新的数组,其中的每个元素是指定数组的对应元素调用指定函数处理后的值。

var arrmap = [1,2,3,4,5];

var newArr= arrmap.map(function(e){
return e+1
})
console.log(newArr)