在 JavaScript 中的数组中查找数字及其第 n 个倍数

我们需要编写一个 JavaScript 函数,它接受一个整数数组作为第一个参数,一个数字,比如 n,作为第二个参数。

该函数应该检查数组中是否存在两个这样的数字,一个是另一个的 n 倍。

如果数组中存在任何这样的对,函数应该返回真,否则返回假。

例如 -

如果数组和数字是 -

const arr = [4, 2, 7, 8, 3, 9, 5];
const n = 4;

那么输出应该是 -

const output = true;

因为数组和中存在数字 2 和 8。

8 = 2 * 4

示例

以下是代码 -

const arr = [4, 2, 7, 8, 3, 9, 5];
const n = 4;
const containsNthMultiple = (arr = [], n = 1) => {
   const hash = new Set();
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      const [left, right] = [el / n, el * n];
      if(hash.has(left) || hash.has(right)){
         return true;
      };
   hash.add(el);
   };
   return false;
};
console.log(containsNthMultiple(arr, n));
输出结果

以下是控制台输出 -

true