javascript基础知识-数组

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;
}
上一篇:为spring cloud config实现刷新动态掉的坑


下一篇:【转】【MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.