Array数组
1, 创建数组并给数组赋值
数组对象:使用单独的变量名来存储一系列的值
var a1=new Array();
console.log(a1);//Array[]
console.log(a1.length);//0
1.1 创建数组的三种方式
new 是实例化对象
第一种:
var a3=new Array(1,2,3);//数组赋多个值表示直接给数组赋值,长度自动
console.log(a3);//Array[1,2,3]
第二种:(简写方式)
var a=[1,2,3,4,5];
第三种:
var a3=new Array();
a3[0]=1;
a3[1]=2;
a3[2]="a";
// a3[3]=function(){
// console.log("wo shi han shu")
// };
a3[3]=function(){
console.log("wo shi han shu");
return 1;
};
a3[4]=null;
console.log(a3[3]());//1
var a2=new Array(2);//数组赋一个值表示该数组的长度
console.log(a2);//Array[<2 empty slots>]
*注意:数组赋一个值表示规定了该数组的长度;数组赋多个值表示直接给数组赋值,长度自动
2. 数组和字符串间的相互转化
2.1 字符串转为数组: obj.split(" ")
var d="123~abcdef";
console.log(d.split(""));//Array["1","2","3","~","a","b","c","d","e","f"]
var e="123~abcdef";
console.log(e.split("~"));//按照“~”转化字符串为数组Array["123","abcdef"]
2.2 数组转化为字符串: obj.join("")和obj.toString()
obj.join("") 该方法将数组返回为一个连续的字符串,但是也可以规定使用的符号拼接字符串
var a=[1,2,3,4,5];
console.log(a.join(""));//12345
console.log(a.join("~"));// 1~2~3~4~5使用“~”拼接数组元素
var b=new Array(1,2,3,"abc");//
console.log(b,b.join(""));// Array[1,2,3,"abc"] 123abc
var c=new Array(1,2,3,"abc",null,function d(){});
console.log(c.join(""));//123abcfunction d(){}
obj.toString() 将数组转换为以逗号分隔的字符串
var a=[1,2,3,4,5];
var e=["apple","orange","banana","mango"];
console.log(a.toString(),e.toString());//1,2,3,4,5 apple,orange,banana,mango
3 数组的方法
3.1 拼接 concat
var a=[1,2,3];
var b=["a","b","c","d"];
var c=[null,45,67];
console.log(a.concat(b));//两个数组拼接
console.log(a.concat(b,c));//多个数组拼接
3.2 截取
slice (start,end):截取完对原数组没有影响
splice(start,end)或者splice(start,length):对原数组有影响,截取后存储的值变为余下的值
var a=[1,2,3,4,5];
console.log(a.slice(0, 2),a);//Arrey[1,2] Arrey[1,2,3,4,5]
console.log(a.splice(0, 2), a);//Arrey[1,2] Arrey[3,4,5]
//console.log(a.splice(2, 1), a);//Arrey[5] Arrey[3,4]
用splice给数组去除重复
var b=[2,3,3,5,7,7,9,"an","dark","ease","oppo"]
for(var i=0;i< b.length;i++){
for(var k=i+1;k< b.length;k++){
if(b[i]==b[k]){
b.splice(k,1);
}
}
}
console.log(b);
3.3 追加
unshift(""):在数组内容之前追加,返回值是数组的长度
push(""):在数组内容之后追加,返回值也是数组的长度
var a=[3,4,5];
console.log(a.unshift("def"),a);//4 Arrey["def",3,4,5]
console.log(a.push("abc"),a);// 5 Arrey["def",3,4,5,"abc"]
3.4 删除
shift():从前往后删除,返回值是删除的值
pop():从后往前删除,返回值也是删除的值
var a=["def",3,4,5,"abc"]
console.log(a.shift(),a);//def Arrey[3,4,5,"abc"]
console.log(a.pop(),a);//abc Arrey[3,4,5]
3.5 给数组排序 sort
给字母排序
var b=[7,2,3,5,7,9,3];
b.push("an","oppo","ease","dark");
console.log(b);//Array[7,2,3,5,7,9,3,"an","oppo","ease","dark"]
console.log(b.sort());//Array[2,3,3,5,7,7,9,"an","dark","ease","oppo"]
给数字排序
var b=[7,2,3,5,7,9,3];
b.push("an","oppo","ease","dark");
b.sort(function(a1,a2){
return a1-a2;
});
console.log(b);//Array[2,3,3,5,7,7,9,"an","dark","ease","oppo"]
b.sort(function(a1,a2){
return a2-a1;
});
console.log(b);//Aarray[]"oppo","ease","dark","an",9,7,7,5,3,3,2]
4.简单练习
4.1 字符串合并再去除重复
var c="abodjfwad";
var d="ajfnihgne";
var e="urtgownvg";
var f= c.concat(d,e);
var g= f.split("");
console.log(g);
for(var h=0;h<g.length;h++){
for(var i=1;i<g.length;i++){
if(g[h]==g[i]){
g.splice(i,1)
}
}
}
console.log(g.join(""));
4.2 选择排序
var a=[3,5,7,6,9,7,2,7,6,8,9];
function abc(x){
for(var i=0;i< x.length;i++){
var space=null;
for(var k=i+1;k<x.length;k++){
var minindex=i;
if(x[k]<x[i]){
minindex=k;
space=x[i];
x[i]=x[minindex];
x[minindex]=space;
}
}
}
}
abc(a);
console.log(a);
用数组的最小索引与最小值绑定,再与a[i]比较再进行位置交换