array 숫자 sort
JS의 sort() 메소드는 기본적으로 문자열 비교할 때 쓰인다. 기본 sort() 메소드만 호출하면 아래와 같은 결과가 나온다. const arr = [2, 1, 3, 10]; arr.sort(); document.writeln(arr + ' '); // [1, 10, 2, 3] 그래서 값 비교 연산 메소드를 추가 작성해줘야 한다. const arr = [2, 1, 3, 10]; arr.sort(function(a, b) { return a - b; }); document.writeln(arr + ' '); // [1, 2, 3, 10] [출처] https://bloodguy.tistory.com/entry/JavaScript-%EB%B0%B0%EC%97%B4-%EC%88%AB%EC%9E%90%EC%A..
2차원 배열의 중복값 제거
다차원배열에서 indexOf로 값 있는지 유무 확인하고 없을 경우에만 배열에 추가하려고 했는데 indexOf 값이 다 -1이 나왔다. 배열의 경우 변수에 담을때 해당 변수는 해당 배열의 값이 아니라, 레퍼런스를 참조하게 됩니다. 이말은, const arr = ['a', [1,2]] 라면, arr[1]에는 배열 [1,2]의 참조 값이 들어가 있다는 거죠. 그렇기 때문에 arr.indexOf([1,2])를 하게 되면, 새로운 원소 1과 2를 가진 새로운 [1,2] 배열이 만들어진것이기 때문에 참조값이 달라서 -1이 나오게 되는 것입니다. 이러한 이유라고 한다. //최종 변경 코드 let locations = [ [126, 34], [126, 34], [126, 35], [127, 34], ]; functio..
reduce() 함수
reduce()에는 누산기가 포함되어 있기 때문에, 배열의 각 요소에 대해 함수를 실행하고 누적된 값을 출력할 때 용이하다. 가장 기본적인 예제로는 모든 배열의 합을 구하는 경우가 있다. const arr = [1, 2, 3, 4, 5]; const result = arr.reduce((acc, cur, idx) => { return acc += cur; }, 0); console.log(result); // 15 const arr2 = [1, 2, 3, 4, 5]; const result2 = arr2.reduce((acc, cur, idx) => { return acc += cur; }, 10); console.log(result2); // 25 reduce()를 제대로 사용하면 map()이나 fil..
filter() 함수
filter는 해석 그대로 걸러주는 역할을 하는 함수이다. 주로 특정 조건을 만족하는 새로운 배열을 필요로 할 때 사용하는 편이다. SQL로 치면 where절에서 하는 행위를 하는 함수이다. 예제 const numbers = [1, 2, 3, 4, 5]; const result = numbers.filter(number => number > 3); console.log(numbers); // [1, 2, 3, 4, 5]; console.log(result); // [4, 5] 중복 제거하기 const numbers = [1, 1, 2, 2, 3, 4, 5]; const newNumbers = numbers.filter((number, index, target) => { return target.index..