JavaScript数组
JavaScript的数组本质是object
类型的,可以存放不同类型的值,且大小可变,但尽量存相同类型的值
定义数组
有两种方式:
-
new
创建:// 第一种 var arr1 = new Array(); // 创建一个空数组 arr1[1] = 'b'; // 给数组指定位置赋值,跳过的位置的值将为undefined arr1.push('c'); // 向数组添加一个数据 console.log(arr1); // [empty,b,c],其中empty就是表示这个位置为空,即undefined console.log(arr1[0]); // undefined // 第二种 var arr2 = new Array('a', 'b', 'c'); // 创建的同时初始化
-
字面量定义:最简洁,这种用的最多
var arr = ['a', 'b', 'c'];
遍历数组
主要有for,for…in…和forEach,最基本的for循环不再说明
var arr = ['a', 'b', 'c'];
// for...in...遍历,推荐使用这种
for (var i in arr) {
console.log(arr[i]);
}
// forEach遍历
arr.forEach(function(value, index){ // index可以省略
console.log(index, value);
})
结果如下
常用方法
-
push
:向数组尾部添加元素,可以一次性添加多个元素 -
pop
:删除并返回数组最后一个元素 -
unshift
:向数组头部添加元素,可以一次性添加多个元素 -
shift
:删除并返回数组第一个元素 -
concat
:拼接数组,原数组不会改变,例如:var arr1 = ['a', 'b', 'c']; var arr2 = [1, 2, 3]; var arr3 = ['x', 'y', 'z']; var arr4 = arr1.concat(arr2, arr3); console.log(arr4); // ["a", "b", "c", 1, 2, 3, "x", "y", "z"]
-
reverse
:颠倒数组,会改变原数组,例如:var arr1 = ['a', 'b', 'c']; var arr2 = arr1.reverse(); console.log(arr1); // ["c", "b", "a"] console.log(arr2); // ["c", "b", "a"]
-
join
:用指定字符,将数组元素链接字符串,不会改变原数组,例如:var arr1 = ['a', 'b', 'c']; console.log(arr1.join('*')); // а*b*c
-
splice
:替换操作,前两个参数表示起始位置和结束位置,后面的参数表示要替换成的元素,起始和结束位置都会被替换,返回被替换下来的元素,例如:var arr1 = ['a', 'b', 'c', 'd']; var arr2 = arr1.splice(1, 2); // 要替换成的元素缺省,等于删除元素 console.log(arr1); // ["a", "d"] console.log(arr2); // ["b", "C"] arr1 = ['a', 'b', 'c', 'd']; arr1.splice(1, 2, 'hello', 'world', '你好'); // 替换元素 console.log(arr1); // ["a", "hello", "world", “你好", "d"] arr1 = ['a', 'b', 'c', 'd']; arr1.splice(1, 0, 'hello', 'world'); // 结束位置小于起始位置,相当于没有选择元素,等于指定位置插入元素 console.log(arr1); // ["a", "hello", "world", "b", "c", "d"]