요즘은 코딩도장 문제를 하루는 자바로, 하루는 자바스크립트로 풀고 있다.
그런데 자바스크립트로 문제를 풀다보면 나와 동일한 로직인데 다른 자료구조나 메서드를 활용하는 것을 볼 수 있다.
오늘은 그 중 Map과 Object, substring과 slice의 차이에 대해 제대로 확인해보았다.
짝꿍님께서 말씀해주시기를 Map은 키-값 쌍을 저장한 순서대로 조회를 할 수 있지만
Object는 순서를 보장할 수 없다는 단점이 있다고 알려주셨다.
그리고 Object는 키에 문자열만 사용할 수 있지만, Map은 키로 숫자, 문자열, 객체를 모두 사용할 수 있다고 한다.
따라서 값의 순서를 보장해야하는 경우와 키에 문자열 외의 값을 넣어야하는 경우는 Map을 사용해야 한다.
substring과 slice는 시작값이 끝 값보다 작은 경우, 그리고 음수를 사용하지 않은 경우 동일하게 작동한다.
하지만 만약 시작값을 끝값보다 크게 잡았다면 substring은 시작값과 끝 값을 바꾸어서 처리를 하지만 slice는 빈 문자열을 반환한다.
시작값과 끝 값에 음수가 있는 경우 substring은 0으로 처리하고, slice는 음수값을 끝에서부터 음수 값만큼 깎인 index로 처리한다.
예를 들어 -2라면 끝에서 두번째 index에 해당한다.
index가 음수가 나올 수 있다면 slice를 사용하면 좋을 것 같다.
비슷하지만 살짝씩 다른 부분들을 혼동하면 안될 것 같고, 이런 부분이 나오면 정리를 해두는 습관을 들여야할 것 같다.