转载

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];     } } //一个实现深复制的函数
正文到此结束
Loading...