我们需要编写一个包含两个文字数组的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