JavaScript数据结构 ---- 数组 1

JavaScript数据结构 ---- 数组

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];
	}
}
//一个实现深复制的函数
posted @ 2015-11-26 01:04  周福林  阅读(723)  评论(1编辑  收藏  举报