JavaScript中两个数组的isSubset

我们需要编写一个包含两个文字数组的JavaScript函数。该函数应确定第二个数组是否是第一个数组的子集,并牢记以下几点:

  • array1的所有值都应在array2中定义

  • 如果array1中存在重复值,则还应在array2中考虑它们。

例如,如果arr1 = [“ a”,“ a”]和arr2 = [“ b”,“ a”],则isSubset为false,因为“ a”在第一个出现两次,但在第二个出现一次。

示例

为此的代码将是-

const isSubset = (arr1, arr2) => {

   const count = (arr, ind) => {

      let i = arr.length;

      while (i−−) hash[arr[i]] = (hash[arr[i]] || 0) + ind;

   }

   const hash = {};

   let i, keys;

   count(arr1, 1);

   count(arr2, −1);

   keys = Object.keys(hash);

   i = keys.length;

   while (i−−) {

      if (hash[keys[i]]){

         return false;

      };

   };

   return true;

}

console.log(isSubset(["B", "A", "C", "A"], ["A", "B", "C", "A"]));

console.log(isSubset(["B", "A", "C", "A"], ["A", "B", "C", "D"]));

输出结果

控制台中的输出将是-

true

false

以上是 JavaScript中两个数组的isSubset 的全部内容, 来源链接: utcz.com/z/316056.html

回到顶部