千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

1.栈方法(后进先出)
push() 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度,改变原数组
var arr = ['apple', 'banana', 'pear', 'orange']; //arr:数组对象,实例对象 Array:构造函数(类)
console.log(arr.push('zhangsan', 'lisi', 'wangwu'));//7
console.log(arr);//['apple', 'banana', 'pear', 'orange', 'zhangsan', 'lisi', 'wangwu']
案例:创建一个长度为100的数组,里面是从2开始的偶数。
var arr = [];
for (var i = 1; i <= 100; i++) {//i:1,2,3,4,5
arr.push(i * 2);
}
console.log(arr);
pop() 从数组末尾移除最后一项,减少数组的length值,然后返回移除的项,改变原数组
var arr = ['apple', 'banana', 'pear', 'orange'];
console.log(arr.pop());//orange
arr.pop();
arr.pop();
arr.pop();
console.log(arr);
案例:清空数组(注意arr.length是动态获取,pop改变原数组)
var arr = ['apple', 'banana', 'pear', 'orange', 'zhangsan', 'lisi', 'wangwu', 'zhanliu'];
for (var i = 0, len = arr.length; i < len; i++) {//arr.length动态获取数组的长度,但是pop方法删除一项,改变原数组
arr.pop();
}
console.log(arr);
2.队列方法
unshift()可以接收任意数量的参数,把它们逐个添加到数组前面,并返回修改后数组的长度,改变原数组
var arr = ['apple', 'banana', 'pear', 'orange'];
console.log(arr.unshift('a', 'b', 'c'));//7
console.log(arr);//['a', 'b', 'c','apple', 'banana', 'pear', 'orange']
shift() 从数组前面移除一项,减少数组的length值,然后返回移除的项,改变原数组
var arr = ['a', 'b', 'c', 'apple', 'banana', 'pear', 'orange'];
console.log(arr.shift());//a
console.log(arr);//['b', 'c', 'apple', 'banana', 'pear', 'orange']
1.concat() 方可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。
var arr = ['zhangsan', 'lisi'];
var newArr = arr.concat('wangwu', 'zhaoliu');
console.log(arr);//['zhangsan', 'lisi']
console.log(newArr);//基于当前原数组,生成新数组['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
var arr = ['a', 'b', 'c'];
var newArr = arr.concat('d', 'e', arr, arr);
console.log(newArr);//['a', 'b', 'c','d', 'e','a', 'b', 'c','a', 'b', 'c']
console.log(arr);//['a', 'b', 'c'] 不改变原数组
2.slice() 方法它能够基于当前数组中的一或多项创建一个新数组, 可以接受一或两个参数,即要返回项的起始和结束位置,不包括结束位置。
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
var newArr = arr.slice(2, 4); //起始索引和结束的索引,不包括结束的索引位置
console.log(newArr);//['c','d']
console.log(arr.slice(2));//从索引2位置开始截取,直到最后的。 ['c', 'd', 'e', 'f', 'g']
console.log(arr.slice());//全部截取,['a', 'b', 'c', 'd', 'e', 'f', 'g']
了解如果参数是负数,表示从后往前数,-1开始
截取一定是从前往后进行截取,数起始位置和结束位置的时候,从后往前数。
console.log(arr.slice(-5, -2));//[ 'c', 'd', 'e']
console.log(arr.slice(-100, -500));//[]
3.splice() 方法对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,改变原数组。
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
3.1.删除,第一个参数表示删除的起始索引位置,第二个参数表示删除数组项的长度。
console.log(arr.splice(2, 3));//['c', 'd', 'e'] 返回被删除的项
console.log(arr);//['a', 'b','f', 'g']
3.2.插入,根据删除演变而来的
参1:删除的起始索引位置
参2:表示删除数组项的长度
从参数3开始,就是添加的数组项,将数组项添加到第一个参数的位置。
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
console.log(arr.splice(2, 0, 'hello', 'hi'));//[] 返回被删除的项
console.log(arr);//['a', 'b', 'hello', 'hi', 'c', 'd', 'e', 'f', 'g']
3.3.替换,根据删除演变而来的,删除几项,插入几项。
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
console.log(arr.splice(2, 3, 'hehe', 'xixi', 'haha'));//['c', 'd', 'e']
console.log(arr);// ['a', 'b','hehe', 'xixi', 'haha', 'f', 'g'];