우리는 두 개의 리터럴 배열을 취하는 JavaScript 함수를 작성해야 합니다. 함수는 다음 사항을 염두에 두고 두 번째 배열이 첫 번째 배열의 하위 집합인지 여부를 결정해야 합니다. −
-
array1의 모든 값은 array2에 정의되어야 합니다.
-
array1에 중복 값이 있으면 array2에도 고려해야 합니다.
예를 들어, arr1 =["a", "a"] 및 arr2 =["b", "a"]이면 "a"가 첫 번째에는 두 번 나타나지만 두 번째에는 한 번만 나타나기 때문에 isSubset은 false입니다.
예시
이에 대한 코드는 -
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