1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配
2.javascript数组是无类型的
3.数组元素不一定要连续
4.针对稀疏数组,length比所有元素的索引都要大
5.数组的实现是经过优化的,用数字索引来访问数组元素要比访问常规对象属性要快得多
6.数组直接量允许有可选的结尾逗号,所以[,,]只有两个元素
创建数组的方法
1)对象直接量:var primes = [2,3,5,7,11];
2)调用构造函数Array():var a = new Array();
可以使用foreach()方法来遍历数组,执行某个函数
var data = [1,2,3,4,5]; var sumOfSquares = 0; data.forEach( function(x){ sumOfSquares += x*x; } ); sumOfSquares
多维数组
关于多维数组的一个简单例子
var table = new Array(10); for(var i = 0,len = table.length;i<len ;i++){ table[i] = new Array(10); } for(var j = 0 ,row = table.length;j < row;j++){ for(var k = 0,col = table[j].length; k < col;k++){ table[j][k] = j*k; } } var result = table[3][7];
关于数组的排序
如果要对一个数组进行不区分大小写的排序,看下面的例子:
var a = ["ant","Bug","cat","Dog"]; a.sort(); a.sort( function(s,t){ var a = s.toLowerCase(); var b = t.toLowerCase(); if(a < b) return -1; if(a > b) return 1; if(a = b) return 0; } );
关于indexOf,如何使用indexOf来查找一个数组中某个内容出现的所有位置呢?
function findAll(a,x){ var results = [], len = a.length, pos = 0; while(pos < len){ pos = a.indexOf(x,pos); if(pos == -1) break; results.push(pos); pos = pos + 1; }
return results; }
关于比较两个数组的内容是否完全相等的方法:
function equalsArray(a,b){ if(a.length != b.length) return false; for(var i = 0,len = a.length;i < len;i++){ if(a[i]!== b[i]) return false; } return true; }