数组的unshift、pop实现方法
2021-02-04 16:16
标签:fun 记录 pop 返回 value length let style 依次 头部添加(unshift) unshift()方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)。 向数组的头部添加元素,数组的长度也会发生变化,但不像尾部添加的操作,数组原有元素索引不改变。做头部添加的操作,需要将原有元素的索引向右移动。 例如只添加一位,则需要将数组的每个元素的索引依次向右移一位,假设原来数组长度是4,头部添加一个元素,长度变为5. 所以现在就变成:array.length=5,而目前array[5-1]是最后一个元素,现在由于依次往后移动,所以,array[5]必须是最后一个元素 所以我们可以从数组的最后一位的下一位往前循环,将array赋值为array[i-1],循环到1停止,将array的第0项赋值为需要添加的值。 代码实现: 尾部删除(pop) pop()方法将删除arrayObject的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组, 并返回undefined值。` 这个很好实现,按照定义一步一步做就可以。首先,记录下最后一个元素,便于返回,之后从数组中删除最后一个元素, 将其指向null释放掉,然后将数组的长度减1,最后判断一下是否为空数组。 数组的unshift、pop实现方法 标签:fun 记录 pop 返回 value length let style 依次 原文地址:https://www.cnblogs.com/whm156399/p/12793221.htmlrray.prototype._unshift = function(value) { for (let i = this.length; i > 0; i--) {
this[i] = this[i - 1] } this[0] = value return this.length
}
var arr = [1, 2, 3, 4]arr._unshift(8)
console.log(arr); // [ 8, 1, 2, 3, 4 ]
Array.prototype._pop = function () { if (!this.length) {
return undefined
} var end = this[this.length - 1] this[this.length - 1] = null this.length = this.length - 1 return end}
var arr = [1, 2, 3, 4]arr._pop()
console.log(arr); // [ 1, 2, 3 ]
上一篇:java编译运行
下一篇:C++标准容器库STL:map
文章标题:数组的unshift、pop实现方法
文章链接:http://soscw.com/index.php/essay/50967.html