操作数组一直以来都是很头疼的问题,特别是我这样的比较菜的码农,我个人是很排斥数组这个东西的,但是很多的时候不用数组还是不行的,毕竟很多的数据只靠一个变量是远远不够,今天就简单的说一下js里面的数组怎么进行增删改查。
首先我们声明一个数组:
var arr = [];
这个数组的长度(length )为零,这个就不用解释了。
1、原始的通过下标增加:
var arr = [];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 1;
arr[3] = 2;
console.log(arr); // ["a", "b", 1, 2]
console.log(arr.length); // 4
2、通过改变length属性增加:
var arr = [];
arr[0] = 'a'; // 给数组arr添加一个`a`数组项
arr.length = 5; // 改变数组的`length`值为`5`
console.log(arr); // ["a", undefined × 4]
3、数组原生的方法(push)增加:
var arr = [];
arr.push('a','b');
console.log(arr); // ['a','b']
说明:push是增加到数组的最后面,其实就是原本的是需要小标才可以增加的,这个方法将这个封装了起来而已。
4、使用unshift() 方法增加到数组前面:
var arr = ['a','b'];
arr.unshift(1,2);
console.log(arr); // [1, 2, "a", "b"]
5、使用splice() 方法指定位置增加:
var arr = ['a','b','c',1,2];
arr.splice(2,0,'d','c','e');//从第二位增加
console.log(arr); // ["a", "b", "d", "c", "e", "c", 1, 2]
6、使用 concat()方法在原有的数组上增加:
var arr = ['a','b','c'];
var arr2 = arr.concat('d',1,2,['e',3]);
console.log(arr); // ["a", "b", "c"]
console.log(arr2); // ["a", "b", "c", "d", 1, 2, "e", 3]
1、使用pop() 方法从末尾删除:
var arr = ['a','b','c','d',1,2];
arr.pop();
console.log(arr); // ["a", "b", "c", "d", 1]
2、使用shift() 方法从前面删除:
var arr = ['a','b','c','d',1,2];
arr.shift();
console.log(arr); // ["b", "c", "d", 1, 2]
说明:不管是pop()还是shift()都是每次只能删除一个。
3、使用slice()删除多个:
var arr = [1,2,3,4,'a','b'];
var arr2 = arr.slice(2);
console.log(arr); // [1, 2, 3, 4, "a", "b"]
console.log(arr2); // [3, 4, "a", "b"]
console.log(arr3); // ["a", "b"]
说明:slice() 方法可以给一个数组中删除多个数组项,只不过不同的是, slice() 不会影响原数组,只是会在原数组基础上创建一个数组副本
4、使用splice() 方法指定位置删除:
var arr = [1,2,3,4,'a','b','c'];
var arr2 = arr.splice(2,2);
console.log(arr); // [1, 2, "a", "b", "c"]
console.log(arr2); // [3, 4]
使用splice() 方法改变一个数组:
var arr = [1,2,3,4,5,6];
var arr2 = arr.splice(2,3,'a','b','c');
console.log(arr); // [1, 2, "a", "b", "c", 6]
console.log(arr2); // [3, 4, 5]
使用slice() 方法提取数组的数据:
var arr = [1,2,3,4,5,6];
var arr2 = arr.slice(-3);
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(arr2); // [4, 5, 6]