判断数组中是否具有相同的元素(简单类型)

45 阅读1分钟
判断数组中是否具有相同的元素
  • 方案1,通过给对象添加标识符
// 判断数组是否有重复元素
export const hasRepeatEle = (tempArr) => {
  // 判断数组是否有重复元素
  const obj = {}
  for (let index = 0, len = tempArr.length; index < len; index++) {
    const ele = tempArr[index];
    if (ele) {
      // 重复
      if (obj[ele]) return true // 这里的作用和break一样,不会继续执行剩余的循环
      obj[ele] = true
    }
  }
  // 不重复
  return false
}
  • 方案2,通过对比元素在数组中的位置
  // 不能使用forEach方法,因为forEach不会有返回值,对return无效。使用for坚守啊循环次数,还可以拿到返回结果值
  function hasRepeatEle (arr) {
      for (let index = 0, len = arr.length; index < len; index++) {
          if (index !== arr.indexOf(arr[index])) {
              return true
          }
      }
      return false
  }