javascript的数组创建及方法

作为一门动态脚本语言,javascript真的是非常地易用。它的数组非常灵活,并且方法也很多,用起来较为方便。

javascript的数组的创建

js真的是一门很随性的语言啊,比如在创建数组的时候就反映出来了,我想怎么创就怎么创,我想创什么就创什么。
比如现在我想创建一个数组,但我不确定要给它开辟多少内存空间。没关系!因为你创建一个数组内容,它就会给你开辟一个内存空间。

var arr=new Array();

索性我连new都不要了:

var arr=Array();

好吧,事实上这样写会导致阅读不方便,所以就不要偷懒了。
或者直接:

var arr=[];

就是如此任性好嘛!
那如果我想要添加内容呢?

var arr=new Array("hello","world");
var arr=["hello","world"];

甚至一个数组里什么都有都可以!

var arr=["hello",3,true];

如果想要创建一个空间已知的数组也很方便:

var arr=new Array(10);

这样直接创建了一个可以存放十个内容的数组。

javascript数组的增减

还是不得不感慨js实在是太灵活了。

var arr=[];
arr[0]=1;
arr[1]=2;
alert(arr[0]);//1

这样子就是为arr数组添加了两个内容。

var arr=[1,2,3,4,5];
arr[2]=20;
alert(arr[2]);//20

修改起来也很方便。

var arr=[1,2,3];
arr[99]=9090;
alert(arr[99]);//9090

如果本身只有3个内存空间,但是你创建了一个标记为99的数组内容,那么它会自动给你补全到99,不过在2-99之间的都是undefined;
另外为了模拟队列和栈的结构,它也提供了一些增减的方法。

栈方法

栈是一种后进先出的数据结构,要模拟这种方式,数组的增减就应该是增加在数组末尾,删除数组末尾的项。
js为我们提供了两个方法push()和pop();
push是向末尾添加。

var arr=[1,2,3];
arr.push(6);
//arr=[1,2,3,6];

pop是删除数组的最后一项,array.pop()是取得最后一项。

var arr=[1,2,3,4];
var arr1=arr.pop();
//arr=[1,2,3];
//arr1=4;

队列模式

队列是先进先出的模式。要模拟这种模式,数组的增减应该是在末尾添加,在起始位置删除。js提供了shift的方法,它能移除数组的第一项并返回该项。和push合作就形成了队列的模式。

var arr=[1,2,3];
arr.shift();
//arr=[2,3];

另外提供了unshift的方法,可以在前端插入多个数据,因此与pop结合可以成为反方向的队列模式。

重排序方法

其中的reverse方法是将数组反向排序。
另外还有一个sort的方法,可以按照自己的规则来排序。
下面是按照从小到大的顺序排列:

function compare(value1,value2){
    if(value1>value2){return 1}
    else if(value1<value2){return -1}
    else {return 0}
}
var arr=[4,6,23,54,3,2,4];
arr.sort(compare);
//arr=[2,3,4,4,6,23,54];

这样不管自己想按怎么的顺序来排序都可以了。

操作方法

concat方法是将多个数组组成一个数组。
slice方法是从一个数组中选取一些数返回一个新数组。一般会穿两个参数,第一个是开始选取的位置,第二个是选取到这个位置的前一位。如果只有一个参数,默认选取到最后一位。

var arr=["black","white","yellow","green"]
var arr1=arr.slice(1);
alert(arr1);//white,yellow,green
var arr2=arr.slice(1,3);
alert(arr2);//white,yellow

splice方法。一般传入两个及以上的参数。第一个表示开始删除的起始位置。第二个参数表示从这个位置开始删除几个数。第三个及后面的参数表示在此处要加入的数据。
这个方法的用处多多。

位置方法

indexOf和lastIndexOf方法。一个是从数组的开头位置向后查找,一个是从末尾位置向前查找。

迭代方法

迭代方法

归并方法

reduce和reduceRight方法。
顾名思义,就是按照一定的方法归并数组。
reduce是从第一项开始遍历,向前一项进行归并。
而reduceRight恰好相反。

var arr=[1,2,3,4,5];
var sum=arr.reduce(function(prev,cur,index,array){
    return prev+cur;
    });
alert(sum);//15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值