栈方法:后进先出
push()可以接收任意数量的参数,把它们逐个添加到数组末尾,push方法返回修改后数组的长度。
var arr = ['hello', 'hi']; arr.push(5, 6, 7, 8); console.log(arr); //["hello", "hi", 5, 6, 7, 8]pop() 从数组末尾移除最后一项,减少数组的length值,pop方法返回移除的项。
var arr=['hello','hi'] console.log(arr.pop()); //hi console.log(arr.pop()); //hello console.log(arr.pop()); //undefined console.log(arr); //[]队列方法:先进先出
unshift()可以接收任意数量的参数,把它们逐个添加到数组前面,并返回修改后数组的长度
var arr = ['zhangsan', 'lisi', 'wangwu']; console.log(arr.unshift('sunyi', 'wanger')); //5 console.log(arr); //["sunyi", "wanger", "zhangsan", "lisi", "wangwu"]shift()从数组前面移除一项,减少数组的length值,然后返回移除的项。
var arr = ['zhangsan', 'lisi', 'wangwu']; console.log(arr.shift()); //zhangsan console.log(arr.shift()); //lisi console.log(arr.shift()); //wangwu console.log(arr);[]重排序方法
reverse() 方法会反转数组项的顺序。
var numarr = [1, 2, 3, 4, 5]; console.log(numarr.reverse()); // [5, 4, 3, 2, 1]sort() 方法按字母表升序排列数组项。
如果按其他方式而非字母表顺序进行数组排列,必须给sort方法传递一个比较函数做参数。
var arr = ["sunyi", "wanger", "zhangsan", "lisi", "wangwu"]; console.log(arr.sort()); //["lisi", "sunyi", "wanger", "wangwu", "zhangsan"]sort()排序数字
var arr = [12, 3, 569, 78, 0, -56, 1223, 11, 16, 13, 1]; 排序数字 系统约定传入一个比较函数即可排序数字。 function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } } console.log(arr.sort()); //[-56, 0, 1, 11, 12, 1223, 13, 16, 3, 569, 78] console.log(arr.sort(compare)); //[-56, 0, 1, 3, 11, 12, 13, 16, 78, 569, 1223] console.log(arr.sort(function(a, b) { //a,b代表数组项的值。 return a - b; }));结构方法
concat() 方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。(不改变原数组)
var arr = ['hello', 'hi']; var newarr = arr.concat(arr, arr, 'hehe', arr); console.log(arr);//['hello', 'hi'] console.log(newarr);//['hello', 'hi','hello', 'hi',hehe,hello', 'hi] 将多个数组拼接成一个数组。 var arr1 = ['1', '2', '3']; var arr2 = ['a', 'b', 'c']; var arr3 = ['100', '200', '300']; console.log(arr1.concat(arr2, arr3)); //["1", "2", "3", "a", "b", "c", "100", "200", "300"]slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数,即要返回项的起始和结束位置,不包括结束位置。(不改变原数组) - 通过索引下标进行截取
第一个参数是开始的索引位置
第二个参数是结束的所有位置,不包括结束的位置
截取的方向一定是从前往后,但是索引位置为负数,从后往去数位置。
var arr = ["a", "b", "c", "d", "e", "f", "g"]; console.log(arr.slice()); //没有设置位置全部截取["a", "b", "c", "d", "e", "f", "g"] console.log(arr.slice(1)); //从1索引位置开始截取 ["b", "c", "d", "e", "f", "g"] console.log(arr.slice(1, 5)); //从索引1开始截取到索引5的位置,不包括5这个位置 ["b", "c", "d", "e"] console.log(arr.slice(1, -3)); //负数从后往前数 -1开始 ["b", "c", "d"] console.log(arr.slice(-7, -3)); //负数从后往前数 ["a", "b", "c", "d"] console.log(arr.slice(-3, -7)); //截取的方向一定是从前往后 []splice()方法对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,(改变原数组)。
删除
var arr = ["a", "b", "c", "d", "e", "f", "g"]; console.log(arr.splice(2, 3)); //2开始的索引位置 3代表删除的长度 返回被删除的项组成数组["c", "d", "e"] console.log(arr); //["a", "b", "f", "g"]插入:根据删除演变来的
var arr = ["a", "b", "c", "d", "e", "f", "g"]; console.log(arr.splice(2, 0, 'hehe', 'xixi', 'haha')); console.log(arr);//["a", "b", "hehe", "xixi", "haha", "c", "d", "e", "f", "g"]替换:根据删除演变来的
var arr = ["a", "b", "c", "d", "e", "f", "g"]; console.log(arr.splice(2, 2, 'hehe', 'xixi')); //["c", "d"] console.log(arr); //["a", "b", "hehe", "xixi", "e", "f", "g"];join()方法将数组转换成对应的字符串。参数就是连接符。
var arr = ["a", "b", "c", "d", "e", "f", "g"]; console.log(arr.join()); //'a,b,c,d,e,f,g' console.log(arr.join('#')); //'a#b#c#d#e#f#g' console.log(arr.join('')); //'abcdefg' console.log(arr.join('%')); //'a%b%c%d%e%f%g' console.log(typeof arr.join('%')); //string