시간복잡도를 고려하지 않은 코드 1

function isSubset(base, sample) {
	// 여부를 리턴 할 변수를 하나 만들어주는데 기본값은 false로 세팅한다.
	let result = false;

	// 이중포문을 돌려서 base와 sample의 요소가 같은지 확인하고 같으면 true 아니면 false를 result에 할당한다.
	for(let i=0; i<sample.length; i++) {
		for(let j=0; j<base.length; j++) {
			//sample 요소랑 base요소가 같은지 확인한다.
			if(sample[i] === base[j]) {
				result = true;
				break;
			} else {
					result = false;
				}
		}
	}
	// result를 리턴한다.
	return result;
}

시간복잡도를 고려하지 않은 코드2 (every 메서드 사용)

function isSubset(base, sample) {
	return sample.every(el => {
		if(base.includes(el)) {
			return true;
		} else {
				return false;
			}
	});
}

시간복잡도를 고려한 코드1

function isSubset(base, sample) {
	// true, false를 리턴 할 변수를 하나 만들어주고 false로 세팅해준다.
	let result = false;

	// base와 sample을 오름차순으로 정렬해준다.
	base.sort((a, b) => a-b);
	sample.sort((a, b) => a-b);

	// 이중포문을 돌려서 base와 sample의 요소가 같은지 확인하고 같으면 true 아니면 false를 result에 할당한다.
	for(let i=0; i<sample.length; i++) {
		for(let j=i; j<base.length; j++) {
			//sample 요소랑 base요소가 같은지 확인한다.
			if(sample[i] === base[j]) {
				result = true;
				break;
			} else {
					result = false;
				}
		}
	}
	// result를 리턴한다.
	return result;
}