JavaScript-实现数组方法-头尾处理 push pop和unshift shift
·
实现push
push
尾部添加元素 返回新的长度
实现
利用了数组长度length属性和索引的关系来定位尾部要添加的索引
Array.prototype.myPush = function (value) {
this[this.length] = value
return this.length
}
- 以下是测试用例
let arr = [1, 2, 3, 4]
console.log(arr.myPush(5), arr); //5 (5) [1, 2, 3, 4, 5]
实现pop
pop
尾部删除元素 返回删除的元素
实现
先利用数组长度length属性 尾部赋值为null
//实现pop 尾部删除元素 返回删除的元素
Array.prototype.myPop = function () {
this[this.length - 1] = null
this.length -= 1
return this[this.length - 1]
}
测试用例如下
console.log(arr.myPop(), arr); //4 (4) [1, 2, 3, 4]
实现unshift
unshift
头部添加元素 返回新长度
实现
通过原数组的元素向后移再给头部元素赋值实现头部添加
//unshift 头部添加元素 返回新的长度
Array.prototype.myUnshift = function (value) {
//向后移
for (let i = arr.length; i > 0; i--) {
this[i] = this[i - 1]
}
this[0] = value
return this.length
}
测试用例如下
console.log(arr.myUnshift(0), arr); //5 (5) [0, 1, 2, 3, 4]
实现shift
shift
头部元素删除并且返回元素
实现
通过元素向前移再把长度减一 实现头部元素的删除
Array.prototype.myShift = function () {
//向前移
let a = this[0]
for (let i = 0; i < this.length - 1; i++) {
this[i] = this[i + 1]
}
this.length -= 1
return a
}
更多推荐
所有评论(0)