文章目录
  1. 1. 改变原数组
  2. 2. 不改变原数组

改变原数组

push pop shift unshift sort reverse splice

  • push 在数组最后一位添加数据
1
2
3
4
5
6
var arr = [1, 2, 3, 5];
Array.prototype.push = function () {
for (var i = 0; i < arguments.length; i++) {
arr[arr.length] = arguments[i];
}
}

上面是自己实现的一个push方法

  • pop 剪切最后一位
1
2
3
//pop 剪切最后一位
var arr = [1, 2, 3, 5];
arr.pop();//[1,2,3]
  • shift 减去第一位
1
2
var arr = [1, 2, 3, 5];
arr.shift();//[2, 3, 5]
  • unshift 在第一位添加数据
1
2
var arr = [1, 2, 3, 5];
arr.unshift(6);//[6,1,2,3,5]
  • sort 排序数组
1
2
3
4
5
6
7
8
9
10
11
//sort  //排序原数组
//可以自定义排序方式
//1.必须写两个形参
//2.看返回值 返回值负数,那么前面的数在后面
//正数,后面数在前面
//为0,不动

var arr = [1, 2, 3, 5, 9, 20, 4, 7, 4];
arr.sort(function (a, b) {
return Math.random() - 0.5;
});

系统提供自定义排序的支持,我们可以按照自己的需求定制排序的实现

  • reverse 反转元素
1
2
var arr= [1,2,3,5];
arr.reverse();//[5,3,2,1]
  • splice splice(从第一位开始,截取多少的长度,在切口处添加新的数据)
1
2
3
4
//arr.splice(3,0,4),可以传负数,以下是负数的实现
/splice = function (pos) {
// pos += pos > 0 ? 0 : this.length;
//}

不改变原数组

concat join split toString,slice

  • concat 连接2个数组
1
2
3
var arr=[1,2,3];
var arr1=[4,5,6];
var newarr = arr.concat(arr1);//[1,2,3,4,5,6]
  • join
1
2
3
4
5
6
7
var str="h";
var str1='e';
var str2="l";
var str3='l';
var str4='o';
var arr=[str,str1,str2,str3,str4];
var newarr = arr.join('')//默认为,传个空字符 hello //拼接字符串这中效率较高
  • split 字符串的方法,按照一定规则分割成数组
1
2
3
4
5

//字符串方法split 分割成数组
var arr = ['h', 'e', 'l', 'l', 'o'];
var str = arr.join('-');
var newarr = str.split('-');//["h", "e", "l", "l", "o"]
  • toString
1
2
3

var arr=[1,2,3];
var newarr = arr.toString();//"1,2,3"
  • splice slice(从该位开始,截取到该位)第二个参数为空 截取到最后
1
2
3
4

var arr = [1,2,3];
var newarr = arr.slice(1,3);// 2
var newarr1 = arr.splice(0);//[1,2,3]
文章目录
  1. 1. 改变原数组
  2. 2. 不改变原数组