js 实现push
实现数组的 push 方法
在 JavaScript 中,Array.prototype.push 方法用于向数组的末尾添加一个或多个元素,并返回新的长度。以下是一个自定义实现:
Array.prototype.myPush = function(...items) {
for (let i = 0; i < items.length; i++) {
this[this.length] = items[i];
}
return this.length;
};
使用示例
const arr = [1, 2, 3];
const newLength = arr.myPush(4, 5);
console.log(arr); // [1, 2, 3, 4, 5]
console.log(newLength); // 5
实现原理
该方法接收可变数量的参数(使用剩余参数语法 ...items 收集),然后遍历这些参数,依次将它们添加到数组的末尾。通过将元素赋值给 this[this.length] 来实现添加操作,最后返回更新后的数组长度。
注意事项
这种实现方式会修改原始数组,与原生 push 方法的行为一致。如果需要在不可变数据结构中使用类似功能,应该创建一个新数组而不是修改原数组。
性能考虑
这个实现的时间复杂度是 O(n),其中 n 是要添加的元素数量,与原生实现性能相当。对于大型数组或频繁操作,原生方法通常经过优化,性能可能更好。







