作业:实现一个堆栈类,具备 push、pop 功能

来源:2-17 Class

慕勒7675915

2019-11-21

老师,帮批改下吧

es6方式:
	class Myarray {
	    constructor(arr) {
	        this.arr = arr;
	    }
	    myPop() {
	        if (this.arr.length === 0) return undefined;
	        return Number(this.arr.splice(this.arr.length - 1, 1))
	    }
	    myPush() {
	        let _this = this;
	        Array.from(arguments, el => _this.arr.splice(_this.arr.length, 0, el))
	        return this.arr.length;
	    }
	}
	let arr = Array.of(1, 5, 6, 7, 8)
	let myArray = new Myarray(arr);
	console.log(myArray.myPop(), arr)
	console.log(myArray.myPush(null), arr)
直接挂载方式
	Array.prototype.myPop = function () {
	    if (this.length === 0) return undefined;
	    return Number(this.splice(this.length - 1, 1))
	}
	Array.prototype.myPush = function () {
        let _this = this;
        Array.from(arguments, el => _this.splice(_this.length, 0, el))
        return _this.length;
	}
	 console.log(arr.myPop(), arr)
	 console.log(arr.myPush(0, 3, 4, 3, 2), arr)
写回答

1回答

快乐动起来呀

2019-11-21

优秀,看了下算是一个思路,可以想想有更好的方法吗

0
3
快乐动起来呀
回复
慕勒7675915
直接修改 Array.prototype的方式不推荐这么做
2019-11-30
共3条回复

再学JavaScript ES(6-10)全版本语法大全

前端无门槛学习,从ES6到ES10,一套课程掌握JS最新语法

1182 学习 · 336 问题

查看课程