배열에서 중복된 값을 제거하기 위해서는 일반적으로 우선 배열을 정렬한다. 오름차순 정렬을 하면 중복된 값들이 인접한 위치에 모여 중복을 쉽게 찾을 수 있기 때문이다. 예를 들어, 정렬되지 않은 배열에서 중복을 찾으려면 배열의 모든 요소를 하나씩 비교해야 한다. 하지만 정렬된 배열에서는 중복된 값들이 연속해서 나타나기 때문에 중복을 찾는 과정이 간단해진다. 결국은 시간 복잡도를 줄이기 위함이다. 정렬된 배열에서 중복을 찾는 것은 인접한 값들만을 비교하면 되기 때문에 추가적인 반복문이나 자료구조를 사용할 필요가 없어진다. 반면, 정렬되지 않은 배열에서 중복을 찾으려면 모든 요소를 비교해야 하므로 시간 복잡도가 크게 증가할 수 있다. 예를 들어, 주어진 배열이 [4, 2, 1, 2, 4, 3, 1]이라고 가정..
중첩된 배열의 차원을 낮추는 flat 매서드에 대해서 알아보자. flat() flat 메서드는 배열 안에 배열이 있는 다중 차원의 배열의 차원을 한 단계 낮춰준다. 배열이 일차원이라면 그대로 일차원으로 남는다. flat()의 단점은 속도가 비교적 느리다는 점이다. 구문 1 flat([depth]); cs 기능 1) 다중 차원 배열 평탄화 1 2 3 4 5 6 7 8 const array1 = [1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]; array1.flat(); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] const array2 = [1, 2, 3, 4, 5, [6, 7, [8, 9, 10]]]; array2.flat(); // [1, 2, 3, 4, 5, [6, 7,..
ES6부터 구조분해 할당(destructuring assignment)이라는 문법이 등장했다. 말 그대로 어떤 배열이나 객체를 분해한 후 다시 할당하는 것이다. ES5와 ES6를 비교하며 알아보자. 목차 배열 구조분해 할당 객체 구조분해 할당 구조분해 할당 응용 1. 배열 구조분해 할당 1) 형식 ES5 배열의 모든 요소에 접근해 하나씩 변수에 담는 방식이다. 1 2 3 4 5 6 const fruits = ['apple', 'banana', 'kiwi']; const red = fruits[0]; const yellow = fruits[1]; const green = fruits[2]; console.log(red, yellow, green); // apple banana kiwi cs ES6 frui..
누구나 알고 있겠지만 평균을 구할 때에는 저장된 요소의 값을 모두 더하고 그 요소의 개수만큼 나누면 된다. 이렇게 평균값을 구하는 방식을 코드로 작성해보자. 1 2 3 4 const array = [12, 5, 7, 32, 10]; const average = array.reduce((a, c) => a + c) / array.length; console.log(average); // 13.2 Colored by Color Scripter cs 모든 값을 더할 때, reduce라는 매서드를 사용하였다. reduce는 배열에 있는 모든 요소의 값을 합쳐서 새로운 값으로 반환하는 매서드이다. reduce의 형식은 아래와 같다. 1 2 3 array.reduce((accumulator, currentValue..
배열 메서드인 slice()는 기존 배열에서 원하는 만큼 가져와 새로운 배열로 반환한다. splice()와 비슷하게 생겼지만, 기능은 다르니 확실하게 구분하여 사용하여야 한다. 목차 slice()와 splice()의 비교 slice() 1. slice()와 splice()의 비교 slice(시작인덱스, 끝인덱스) 시작 인덱스 자리에 있는 요소부터 끝 인덱스 전까지 요소를 추출하여 가져옴 splice(시작요소, 삭제개수, 기존배열추가요소) 시작 요소부터 끝 인덱스까지 추출하여 가져옴 [Javascript] splice 기능 - 배열에서 원하는 요소 제거, 추가 자바스크립트에서 배열의 맨 앞과 맨 뒤 요소를 제거하거나 추가하는 방법은 비교적 간단했다. 그렇다면 원하는 위치의 요소를 제거하거나 다른 값으로 바..
fill()은 배열의 매서드이다. 원하는 값을 배열의 원하는 요소 자리에 채우고 싶을 때 fill() 함수를 사용한다. fill() 함수의 기본 형식부터 여러가지 예제를 살펴보자. 목차 fill() 기본 형식 fill() 기본 예제 음수 인덱스 값 배열 생성 후 fill()로 값 채우기 1. fill() 기본 형식 1 배열명.fill(value, start, end); cs value : 해당 배열 위치에 넣을 값 (필수 값) start : 시작 인덱스 (선택사항, 기본값=0) end : 끝 인덱스 (선택사항, 기본값=배열의 length) 반환값(return 값) : 지정한 value 값을 채운 배열이 반환된다. fill()은 배열이 반환되는 배열의 매서드이다. value, start, end 3개의 매..
배열에서 원하는 요소를 찾아 삭제해야 하는 경우가 있다. 우선 배열에서 특정 요소를 찾는 방법을 알아보고 그 요소만 골라서 삭제하는 방법에 대해 알아보자. splice 기능에 대해 아직 모른다면 먼저 아래 페이지를 참고하여 공부하고 오길 바란다. [Javascript] splice 기능 - 배열에서 원하는 요소 제거, 추가 자바스크립트에서 배열의 맨 앞과 맨 뒤 요소를 제거하거나 추가하는 방법은 비교적 간단했다. 그렇다면 원하는 위치의 요소를 제거하거나 다른 값으로 바꾸기 위해서는 어떤 기능을 사용해야 fromnowwon.tistory.com 목차 includes indexOf, lastIndexOf 배열에서 원하는 요소를 찾아 제거하는 방법 1. includes includes는 특정 요소가 배열 안에..
자바스크립트에서 배열의 맨 앞과 맨 뒤 요소를 제거하거나 추가하는 방법은 비교적 간단했다. 그렇다면 원하는 위치의 요소를 제거하거나 다른 값으로 바꾸기 위해서는 어떤 기능을 사용해야 할까? 목차 배열에서 원하는 요소 제거하기 배열에서 요소 제거 후 다른 값 넣기 1. 배열에서 원하는 요소 제거하기 맨 앞과 맨 뒤 요소가 아닌 중간에 있는 요소를 제거하기 위해서는 splice 기능을 사용하면 된다. splice의 첫 번째 숫자는 인덱스이고 두 번째 숫자는 해당 인덱스의 요소를 포함하여 제거할 요소의 개수를 나타낸다. const array = ['a', 'b', 'c', 'd']; array.splice(1, 1); // 인덱스 1인 요소를 포함하여 1개 요소 삭제 console.log(array); // ..
자바스크립트에서는 배열의 맨 앞과 맨 뒤 요소를 추가하거나 제거하기 위해 여러 가지 기능을 제공하고 있다. 배열의 맨 앞과 맨 뒤의 요소를 제거하기 위한 기능은 어떤 게 있는지 알아보자. 목차 배열의 맨 뒤 요소 제거 배열의 맨 앞 요소 제거 1. 배열의 맨 뒤 요소 제거 배열의 마지막에 새로운 요소를 추가할 때에는 length를 활용하는 방법이나 push 기능을 사용하면 된다. 반대로 맨 뒤 마지막 요소를 제거할 때에는 pop 기능을 사용하면 된다. const array = ['a', 'b', 'c', 'd']; array.pop(); console.log(array); // 결과 : ["a", "b", "c"] 2. 배열의 맨 앞 요소 제거 배열의 맨 앞에 요소를 추가할 때에는 unshift라는 기능..
자바스크립트의 배열은 요소를 추가할 수도 있고, 수정이나 제거할 수도 있다. 요소 수정의 경우 요소의 인덱스를 활용하여 쉽게 변경할 수 있다. 그렇다면 배열의 맨 뒤와 맨 앞에 요소를 추가하기 위해서는 어떻게 해야 할까? 목차 배열의 맨 뒤에 요소 추가하기 배열의 맨 앞에 요소 추가하기 1. 배열의 맨 뒤에 요소 추가하기 배열의 인덱스는 0부터 시작하기 때문에, 맨 뒤 요소의 인덱스는 항상 배열의 개수보다 1만큼 적다. 이 점을 활용하여 맨 뒤에 요소를 추가할 수 있다. const array1 = ['a', 'b', 'c', 'd'] // 맨 뒤 요소인 'd'의 인덱스는 3, 전체 요소의 갯수(array1.length)는 4 array1[array1.length] = 'e' // 기존 배열에 없는 4번째..