手动实现push方法:
Array.prototype.Mypush = function () { for (var i = 0; i < arguments.length; i++) { this[this.length] = arguments[i]; } return this.length; } pop:移除数组尾部的元素,返回移除的元素: unshift:在数组前面添加元素,返回值为数组长度 shift:从数组前面删除元素,返回值为移除的元素: reverse:逆转数组顺序 > var arr = [1,2,3]; < undefined > arr.reverse() < (3) [3, 2, 1] > arr < (3) [3, 2, 1] splice:数组切片操作,参数:splice(从第几位开始,截取多少长度,在切口处添加新的数据)通过splice函数可以实现在数组中的某一位置添加数据:
如果参数为负数的话,就从数组的末尾开始算(数组的底层实现思想是,如果索引为负数,便加上数组本身的长度):
sort:对数组排序 默认按照字符串的排序规则对数组内元素进行排序自定义排序:传入函数类型的参数函数必须有两个参数返回值为负数的话,前面的参数放前面,返回值为正数的话,后面的数放在前面,返回值为0的话,不改变顺序 var arr = [1, 3, 2, 5, 10, 9]; console.log(arr.sort()); // [1, 10, 2, 3, 5, 9] var newArr = arr.sort(function (a, b) { if (a > b) { return 1; } else { return -1; } // 或者 return a - b; }); console.log(arr); // [1, 2, 3, 5, 9, 10] console.log(newArr); // [1, 2, 3, 5, 9, 10]面试题:给一个排序好的数组乱序
var arr = [1,2,3,4,5,6,7]; arr.sort(function(a,b){ return Math.random() - 0.5; });slice:截取数组
第一个参数表示开始截取的位置第二个参数表示截取到位置的索引(不包含该位置)只传递一个参数的话表示从参数位置到数组末尾如果参数为负数,表示负数加上length不传参数表示截取整个数组 var arr = [1, 2, 3, 4, 5, 6, 7]; console.log(arr.slice(1, 3));// [2, 3] console.log(arr.slice(3));// [4, 5, 6, 7] console.log(arr.slice(-2));// [6, 7] console.log(arr.slice());// [1, 2, 3, 4, 5, 6, 7]join:将数组连接成字符串(默认用,连接),split:将字符串拆成数组
var arr = [1, 2, 3, 4]; console.log(arr.join());// 1,2,3,4 console.log(arr.join("-"));// 1-2-3-4 var str = "alibaba-baidu-wangyi-tencent"; console.log(str.split("-"));// ["alibaba", "baidu", "wangyi", "tencent"]