Sunny-117 / js-challenges

✨✨✨ Challenge your JavaScript programming limits step by step

Home Page:https://juejin.cn/column/7244788137410560055

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Array.prototype.includes

Sunny-117 opened this issue · comments

Array.prototype.myIncludes = function (value, start = 0) {
  start = start < 0 ? this.length + start : start;
  for (let i = start; i < this.length; i++) {
    if (this[i] == value || (Number.isNaN(value) && Number.isNaN(this[i])))
      return true;
  }
  return false;
};
Array.prototype.includes = function(searchElement, fromIndex) {
  // 如果数组为空,则直接返回 false
  if (this.length === 0) {
    return false;
  }

  // 如果未传递 fromIndex 参数,则默认为 0
  fromIndex = fromIndex || 0;

  // 如果 fromIndex 是负数,则将其转换为从数组末尾算起的索引
  if (fromIndex < 0) {
    fromIndex = this.length + fromIndex;
  }

  // 遍历数组,查找是否存在指定元素
  for (var i = fromIndex; i < this.length; i++) {
    if (this[i] === searchElement) {
      return true;
    }
  }

  return false;
}