[javascript]Array.of 에 관한 실험
Array.of에 관해서 알아보겠습니다. Array.from은 많이 썼는데, Array.of는 다소 생소하게 느껴집니다. 몇가지 실험을 해보겠습니다. console.log([1,2,3,"haha", 23*9]); //[1, 2, 3, "haha", 207] Array.of를 사용해보겠습니다. console.log(Array.of(1,2,3,"haha",23*9)); //[1, 2, 3, "haha", 207] 외관상 보기에는 동일하네요. type비교 그럼 같은 타입일까요? function getType(n) { if (typeof n === 'object') { if (n.constructor === Array) n = 'array'; } return n; } const a = Array.of(1, 2,..
더보기
[javascript]배열 복사 영향 안받게하려면? array.slice();
배열을 선언하고 복사를 하고 나면 우리가 생각하는대로 원본은 그대로 있어야 하는데 원본도 같이 바뀝니다. 예제를 보시면 이해가 빠를거예요. let a = [2,3,1]; let a1 = a.sort((a,b)=>a-b) console.log(a1); console.log(a); //문제 a를 출력해보면 우리가 처음 봤던 a와는 다르게 a1이랑 같은 결과가 나옵니다. 기본적으로 배열은 원본을 참조하도록 설정 되어 있습니다. 이 연결을 끊어주려면 이렇게 해주면 됩니다. let a = [2,3,1]; let a1 = a.slice(); a1 = a1.sort((a,b)=>a-b) console.log(a1); //[1,2,3] console.log(a); // [2,3,1] 이제 서로 영향을 받지 않습니다.
더보기
[javascript]stack, queue
예제로 살펴 보겠습니다. 배열을 하나 만들어보겠습니다. let test = [1,2,3,4,5,6,7,8]; 당연한 얘기겠지만 String으로는 아래 명령어들을 실행할 수 없습니다. 배열에서만 적용 되는 명령어니까요. Stack 스택은 배열이 한개씩 사라진다고 가정했을때, 가장 마지막에 들어온게 가장 먼저 빠집니다. let test = [1,2,3,4,5,6,7,8]; test.pop(); console.log(test); // 1,2,3,4,5,6,7 좀 더러운 예를 들자면 스택은 먹은걸 목구녕으로 토해내는겁니다. Queue 큐는 배열이 한개씩 사라진다고 가정했을때, 가장 먼저 들어온게 가장 먼저 빠집니다. let test = [1,2,3,4,5,6,7,8]; test.shift(); console.l..
더보기