1. 使用数组
1.1 创建数组
使用 [ ] 创建一个长度为 0 的空数组:
var num = []; console.log(num.length); // 0
也可以在声明数组变量时在 [ ] 中放入一组元素:
var num = [1,2,3,4,5,6]; console.log(num.length); // 6
还可以调用 Array 的构造函数创建数组:
var num1 = new Array(); console.log(num1.length); // 0 var num2 = new Array(1,2,3,4,5,6); console.log(num2.length); // 6
如果在调用 Array 的构造函数时,只传入一个参数,那么这个参数就是数组的长度:
var num = new Array(1024); console.log(num.length); // 1024
JavaScript里数组中的元素不必是同一种数据类型:
var object = [1, "JavaScript", true, null];
可以调用 Array.isArray() 来判断一个对象是否是数组:
var num = 3; var arr = [1,2,3,4]; console.log(Array.isArray(num)); // false console.log(Array.isArray(arr)); // true
有一种方法可以判别各种对象类型:
function isArray(arr) { return Object.prototype.toString.call(arr) === '[object Array]'; }
只需把 Array 换成其他类型即可(eg:Function)。
1.2 读写数组使用 [ ] 操作符读取数组中的元素:
var num = [1,2,3,4,5]; var sum = num[0] + num[1] + num[2] + num[3] + num[4]; console.log(sum); // 15
想要依次读取数组的话,可以使用 for 循环:
var num = [1,3,5,7,8,10,12]; var sum = 0; for (var i = 0; i < num.length; i++) { sum += num[i]; } console.log(sum); // 46
调用字符串对象的 split() 方法可以生成数组,该方法通过分隔符(比如单词间的空格),将一个字符串分成几部分保存在数组中。
var sentence = "This is a time of wonder"; var words = sentence.split(" "); console.log(words); // ["This", "is", "a", "time", "of", "wonder"]
1.3 整体操作数组浅复制 ---- 当把一个数组赋值给另外一个数组时,只是为被赋值的数组增加了一个新的引用。当原引用变化时,另一个引用也会变化。
var num = []; for (var i = 0; i < 5; i++) { num[i] = i * i; } var yetnum = num; num[0] = 1024; console.log(yetnum); // [1024, 1, 4, 9, 16]
深复制 ---- 将原数组中的每一个元素都复制一份到新数组中。
function copy(arr1, arr2) { for (var i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; } } //一个实现深复制的函数