检查JavaScript中排序数组中的多数元素

多数元素:

长度为1的数组arr中的多数元素是出现超过1/2次的元素,因此最多有一个这样的元素。

我们需要编写一个JavaScript函数,比如说isMajority()将一个数组arr作为第一个参数,该数组始终以升序排列。

函数的第二个参数将是一个数字,我们将为其搜索数组,如果该数字是多数元素,则返回true,否则返回false。

例如-

如果输入数组和数字为-

const arr = [5, 5, 5, 12, 15];
const num = 5;

那么输出应该是-

const output = true;

因为5出现3次,大于(5/2)= 2.5。(数组长度的一半)。

假定对数组进行了排序,并且如果存在多数元素,它将始终是中间元素,因为该数字必须至少覆盖数组的一半以上。

我们可以使用此逻辑来检查给定的数字是否为多数元素。

示例

为此的代码将是-

const arr = [5, 5, 5, 12, 15];
const num = 5;
const isMajority = (arr = [], num = 1) => {
   const { length } = arr;
   if(!length){
      return false;
   };
   const middle = Math.floor(length / 2);
   if(arr[middle] === num){
      return true;
   }else{
      return false;
   };
};
console.log(isMajority(arr, num));
输出结果

控制台中的输出将是-

true