数组定义
var arr = new Array(5);
var arr = [1,2,3,4,5];
- 二维数组的定义
//一个5*5的二维数组,0~24
var arr = new Array(5);
for(var i = 0; i < arr.length; i++){
arr[i] = new Array(5);
for(var j = 0; j < arr[i].length; j++){
arr[i][j] = i * arr.length + j;
}
}
数组方法
- 前增
arr.unshift(增加的内容);
返回值:增加后数组的长度
影响原数组 - 后增
arr.push(增加内容)
返回值:增加后数组长度
影响原数组 - 前删
arr.shift()
返回值:删除后数组长度
影响原数组 - 后删
arr.pop()
返回值:删除后数组长度
影响原数组 - 改
arr.splice(开始下标,删除长度,要增加的元素);
返回值:被删除的元素
影响原数组
删除长度为0的话,可用于在指定下标位置添加元素 - 截
arr.slice(开始下标,结束下标);
返回值:截取的数组
不影响原数组 - 拼
arr.concat(要拼接的元素)
返回值:拼接后的新数组
不影响原数组 - 复(复制数组的方法)
arr.slice(0);//截取全部数组
arr.concat();//在原数组的基础上啥也不拼
用for循环挨个赋值 - 逆序排列
arr.reverse();
返回值:逆序后的数组(前后倒置)
影响原数组 - 正序排列
arr.sort();
返回值:正序后的数组(按编码排序)
影响原数组
arr.sort(function(a, b){return a-b;});
- 转
arr.toString();
返回值:转换后的字符串
不影响原数组
可加参数,表示转换成的进制。 - 连接符
arr.join("~");参数为连接符
返回值:加了连接符后的字符串
不影响原数组
最常用的是"",空
以下为ES5新增的数组方法
- indexOf()
查找指定元素在数组中首次出现的下标位置,如果没有找到返回-1
indexOf(5,2);//返回数组中第二个5的下标位置 - forEach()
demo:
var arr = [1,2,3,4];
arr.forEach(function(item, index, array){//分别代表:当前元素,当前下标,当前数组
console.log(item+" "+index); //这里写你要执行的语句,不会影响原数组
});
- map()
demo:
var arr = [1,2,3,4];
var brr = arr.map(function(item, index, array){
return item + 3; //与forEach不同的是Map必须有返回值,不影响原数组
});
console.log(brr); //在arr的基础上每项加上3
- reduce()归并
demo:
var arr = [1,2,3,4];
arr.reduce(function(pre, next, index, array){//pre之前处理的结果,next下一个元素
return pre + next; //这样的话能求数组的累加和
});
- filter()过滤
demo:
var arr = [1,2,3,4];
var brr = arr.filter(function(item, index, array){
retrun item > 2;
});
console.log(brr);//不影响原数组
网友评论