아래 코드는 제가 해시법을 공부하기 위해서 만든 코드입니다.
const existArr = [5, 6, 14, 20, 29, 34, 37, 51, 69, 75];
const hashedArr = [];
const hashTable = [];
const hashKey = 13;
console.log(`기존 배열: [${existArr}]`);
for (let i in existArr) {
hashedArr[i] = null;
}
let i = 0;
while (i < hashedArr.length) {
for (let j of existArr) {
let formula = j % hashKey;
hashedArr[i] = formula;
i++;
}
}
console.log(`해시화한 배열: [${hashedArr}]`);
i = 0;
while (i < hashedArr.length) {
for (let j of existArr) {
let formula = j % hashKey;
hashTable[formula] = existArr[i];
i++;
}
}
console.log(`해시테이블: [${hashTable}]`);
코드의 출력 결과입니다.
기존 배열: [5,6,14,20,29,34,37,51,69,75]
해시화한 배열: [5,6,1,7,3,8,11,12,4,10]
해시테이블: [,14,,29,69,5,6,20,34,,75,37,51]
출력 결과가 배열의 형태가 아닌 템플릿 리터럴로 감싸아서 콘솔 내부에 있는 배열 변수들이 문자열화 된것으로 보입니다. 여기서 제가 해결하고 싶은것은
- 각 배열의 원소사이의 간격을 한칸 띄우고 싶습니다. 어떤 메서드를 어떻게 사용해야 하나요?
- 해시테이블의 컴마 왼쪽 혹은 컴마 사이의 빈 값들은 기존 배열에서 해시값으로 나누어 지지 않은 원소의 자리입니다. 이 자리를 0 혹은 null로 채우고 싶습니다.