JS中数组:
- 只是一种特殊的对象,比其他语言中效率低;
- 属性是用来表示偏移量的索引;在JS中,数字索引在内部被转化为字符串类型(这也是为什么写对象属性的时候可以不叫引号),因为对象中的属性必须是字符串类型;
操作:
- 判断:isArray();
- 复制:
- 浅复制:
var arr1 = arr2;
- 浅复制:
- 深复制:
function copy(arr1) {
var arr2 = [];
for(var i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
return arr2;
}
- 深复制:
- 查找: indexOf/lastIndexOf;
- 由已有的数组创建:concat()/splice();
- 添加:push()/unshift()/splice()/arr[arr.length];
- 删除:pop()/shift()/splice();
- 排序:reverse()/sort()[字典顺序排序];
数字正序排序:
function compare(num1,num2) {
return num1 - num2;
};
字符正序排序:
function compare(str1,str2) {
if(str1 > str2) return 1;
else return -1;
}
字典顺序:0-9A-Za-z - 与字符串:splite(); join()/toString();
- 迭代:
- 不产生新数组:forEach()/every()/some()/reduce()/reduceRight();
- 产生新数组:map()/filter();
数组其他相关:
-
二维数组:
- 初始化:
Array.matrix = function(numrows,numcols,inital) {
var arr = [];
for(var i = 0; i < numrows; ++i) {
var colnums = [];
for(var j = 0; j < numcols; ++j) {
colnums[j] = inital;
}
arr[i] = colnums;
}
rerurn arr;
}
- 对象数组
- 对象中的数组: