본문 바로가기

반응형

JavaScript

(19)
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..
전개 구문(Spread syntax; ...) var arr = [1, 2, 3]; var arr2 = [...arr]; // arr.slice() 와 유사 arr2.push(4); // arr2 은 [1, 2, 3, 4] 이 됨 // arr 은 영향을 받지 않고 남아 있음 [출처] https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax
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..
TypeError: Cannot read properties of undefined (reading '0') 중첩 배열의 인덱스에 액세스하려고 할 때 오류가 발생했다. oprional chaining을 사용해서 오류해결 했다. const arr = []; console.log(arr?.[0]?.[0]); // ✅ undefined const arr = [['hello']]; console.log(arr?.[0]?.[0]); // ✅ "hello" [출처] https://html-jc.tistory.com/314
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..
map() 함수 map은 callback 함수를 각각의 요소에 대해 한번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 만든다. array를 돌면서 array로 결과가 출력된다. const array1 = [1, 4, 9, 16]; const map1 = array1.map(x => x * 2); console.log(map1); // [2, 8, 18, 32] [출처] https://velog.io/@claire-euni/js-map%ED%95%A8%EC%88%98%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C
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..
repeat() 함수 repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환해주는 메서드이다. str = "123"; strRepeat = str.repeat(3); console.log(strRepeat); // 123123123 // `` 을 사용한다면 ${} 안에 넣어주면 된다. str = ['1', '2', '3', '4', '5']; for(let i = 0; i < str.length; i ++){ console.log(`${str[i].repeat(i+1)}\n`); } // 1 // 22 // 333 // 4444 // 55555 [출처] https://ant-programmer.tistory.com/16

반응형