javascript栈、队列、重排和添加删除替换数组的操作方法

一 、栈方法:

栈规则(后进先出),也就是最新添加的项最早被移除。只发生在一个位置——栈的顶部。

push()和pop()方法的使用:push()接受任意参数并逐个添加到数组末尾,增加数组的length();pop()则是从数组末尾移除最后一项,减少数组的length值。两个方法都是返回改变后的项。

var a=["my","your","ok"];
a.push("lis");
a.push("aj");
var b=a.pop(); //删除最后一项

console.log(b); //删除的项
console.log(a.length); //4
console.log(a); //删除后的项:["my", "your", "ok", "lis"]

二、 队列方法:

队列规则(先进先出),也就是队列在列表的末端添加项,从队列的前端移除项。

shift()方法:移除数组中的第一个项然后返回该项,并且返回移除后的length。

var a=["my","your","ok"];
a.push("lis");
a.push("aj");
var b=a.shift();

console.log(b);  //my
console.log(a.length); //4
console.log(a); //["your", "ok", "lis", "aj"]

三、重排序方法:

分为反转顺序、升序和降序三种。

1.反转顺序(reverse()方法):

var a=[5,4,3,2,1,0];
console.log(a.reverse()); //[0, 1, 2, 3, 4, 5]

2.升序和降序(sort()方法也叫快排):

使用自定义函数,调用

function Foo(div1,div2){
	if(div1<div2){
		return -1;  //降序改为1
	}else if(div1>div2){
		return 1;  //降序改为-1
	}else{
		return 0;
	}
}
var a=[2,5,8,7,6,0,50];
console.log(a.sort(Foo)); //[0, 2, 5, 6, 7, 8, 50]

或者:

var a=[2,10,5,7,1,6,0];
      function sortNumber(a,b){
        return a-b;
    }
        function setNumber(a,b) {
            return b - a;
    }
    console.log(a.sort(sortNumber)) //[0, 1, 2, 5, 6, 7, 10]
    console.log(a.sort(setNumber))  //[10, 7, 6, 5, 2, 1, 0]

注:对于数值型或者其valueOf()方法会返回数值类型的对象类型,可以使用简单的比较函数。

function Foo(){
    return div2-div1;
}

四、操作方法:

concat()方法

创建一个数组的副本,然后将接受的参数添加到这个副本末尾,最后返回新构建的数组中。

var a=["one","red","two"];
var b=a.concat("blue",["yellow","green"]);
console.log(a); // ["one", "red", "two"]
console.log(b);//["one", "red", "two", "blue", "yellow", "green"]

slice()方法

var a=["my","I","love","you"];
var b=a.slice(1); //不包括起始位置1的项,取往后所有的项
var c=a.slice(1,3);//不包括起始位置1的项和结束位置3的项,取中间所有的的项
console.log(b); //["I", "love", "you"]
console.log(c); //["I", "love"]

splice()方法(最强大的数组方法)

删除(需指定2个参数:要删除的第一项位置和要删除的项数)

var a=["red","I","you"];
var b=a.splice(0,2); //删除数组中的前两项
console.log(a); //you
console.log(b); //red,I

插入(需提供3个参数:起始位置,0(要删除的项数)和插入的项)

var a=["red","I","li"];
var b=a.splice(2,0,"you","yellow","58");
console.log(a); //["red", "I", "you", "yellow", "58", "li"]

替换(需提供3个参数:起始项,要删除的项数和插入任意的项)

var a=["red","I","li","ok"];
var b=a.splice(1,1,"you","love");
console.log(a); //["red", "you", "love", "li", "ok"]

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值