JavaScript找出数组中连续出现相同元素 次数最多的元素和次数

1,568 阅读1分钟

思路

初始化连续出现最多的元素maxItem是null,次数num是1,num存最开始每个元素出现次数,连续相等元素最多的次数max是1,循环数组如果数组当前项和下一项相等就把num+1 赋值给num,然后判断num 和max谁大,如果num大就把num赋值给max,同时将当前元素赋值给maxItem,如果数组当前项和下一项不相等,重置num为1。

代码实现

let arr = [0,1,1,0,0,1,1,1,0,0,0,0,0,0,2,2,3,3]

function maxYuansu(arr){
  let num =1
  let max = 1
  let maxItem = null
  for (let j = 0; j < arr.length; j++) {
    if(arr[j]===arr[j+1]){
      num= num+1
      if(max<num) {
        max = num
        maxItem = arr[j]
      }
    }else {
      num = 1
    }
  }

  return [maxItem,max]
}

console.log(maxYuansu(arr))

运行结果