Array类型
一、数组的概念
1.定义:具有多个值的变量叫数组,是一个集合
2.数组的声明语法:js原生底层有个方法——Array
二、相关补充
1.参数问题
- 在Array里面带一个参数时,指的是数组的长度
- 在Array里面带多个参数时,即是数组里的各元素
2.声明数组
- 完整的声明方法:
var a=new Array(5,3);//[5,3]
- 简写方法:
var a=[1,2,3,4,5];
3.数组里面可以放置任何类型####
4.给数组赋值
- 直接赋值(实例化数组):
var a=new Array(1,2,3,4,5,6);
- 声明之后再赋值
var a=new Array(5);
a[0]=1;
a[1]=1;
a[2]=1;
a[3]=1;
a[4]=1;
三、数组的方法
1.方法详解
- 数组截断
slice()
- 从那个索引位开始到后边索引位结束(不包含后边的索引位)
- 输出新数组
- 不改变原数组
- 数组截断
splice()
- 从那个索引为开始 截取几个长度
- 返回一个新数组
- 改变原来的数组
- 数组后追加元素
push()
- 往数组后边追加
- 返回数组长度
- 改变原来的数组
- 数组前添加元素
unshift()
- 给数组的前面追加
- 返回数组长度
- 改变原来的数组
- 数组拼接
concat()
- 方法是拼接数组
- 返回新数组
- 不改变原来数组
- 排序
sort()
- 属于快速排序 从小到大
- 返回新数组
- 改变原来数组
- 将数组转化为字符串
join()
- 拼接方法 里面的参数是按照那种方式进行拼接
- 返回一个字符串
- 不改变原来数组
- 字符串转化为数组
split()
- 里面参数是字符串里面的特有符号
- 返回一个新数组
- 删除元素最后一个元素
pop()
- 删除最后一个元素
- 将删除的元素返回
- 改变原来的数组
四、表格
方法 | 定义 | 参数 | 返回值 | 是否改变原数组 | 补充 |
---|---|---|---|---|---|
slice() | 从那个索引位开始到后边索引位结束(不包含后边的索引位) | (开始索引,结束索引) | 被截取的数组 | 不变 | 无 |
splice() | 从那个索引为开始,截取几个长度 | (开始索引,截取长度) | 被截取的数组 | 截取后的数组 | 无 |
push() | 往数组后边追加元素 | 追加的元素 | 返回数组的长度 | 是 | 无 |
unshift() | 给数组的前面追加 | 追加的元素 | 返回数组的长度 | 是 | 无 |
concat() | 将两个数组拼接起来 | 追加的数组 | 返回新数组 | 否 | 无 |
sort() | 从小到大排序 | 无 | 返回新数组 | 是 | 无 |
join() | 将数组转化为字符串 | 按照那种方式进行拼接 | 返回一个字符串 | 否 | 无 |
split() | 字符串转化为数组 | 按照那种方式进行转换 | 返回新数组 | 否(字符串) | 无 |
pop() | 删除元素最后一个元素 | 无 | 返回删除的元素 | 是 | 无 |
五、遍历数组
1.forEach(值,索引,原数组)
a.forEach(function (value,index,arr){
console.log(value+"/"+index+"/"+arr);
});
2.for( in )
for( var key in a){
console.log(a[key]);
}
3.map(映射)(值,索引,原数组)
var c=a.map(function (value,index){
return value+index;
});
console.log(c);
4.reduce 累加
/!*1-100 和*!/
var b=[];
for(var i=1;i<=100;i++) {
b[i-1]=i;
}
var c= b.reduce(function (x,y){
return x+y;
});
console.log(c);
//用reduce实现map的方法
var a=[2,5,2,4,3,7,6,11];
var c=a.map(function (x){
return x+x;
});
console.log(c);
var t=[];
var count=0;
var m=a.reduce(function (x,y){
if(count==0)t.push(a[count]+a[count]);
count++;
t.push(y+y);
});
console.log(t);
源于整理《JavaScript高级程序设计》