天天看點

數組push、pop、shift、unshift的模拟實作

Array.prototype.myPush = function (val) {
  const arr = this;
  arr[arr.length] = val;
  return arr.length;
};

Array.prototype.myPop = function() {
  if (!this.length) {
    return undefined;
  }
  const val = this[this.length - 1];
  this.length -= 1;
  return val;
}
Array.prototype.myShift = function () {
  const arr = this;
  const val = arr[0];
  for (var i = 0; i < arr.length; i++) {
    arr[i] = arr[i + 1];
  }
  arr.length -= 1;
  return val;
};

Array.prototype.myUnshift = function (val) {
  if (!this.length) {
    return undefined;
  }
  const arr = this;
  const result = [];
  result[0] = val;
  for (let i = 0; i < arr.length; i++) {
    result.push(arr[i])
  }
  return result;
};