js数组对象

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]比较再进行位置交换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值