본문 바로가기

JavaScript

(41)
JavaScript* Reduce 함수 리듀스는 너무 어려웠다 지피티랑 얘기를 나누고 이해를 했다대화내용 적는게 제일 좋은듯네, 맞습니다. reduce 함수를 사용하여 최댓값을 찾는 방법은 정확히 그렇습니다. reduce 함수를 사용하면 주어진 배열의 모든 요소를 반복하면서 원하는 값을 누적하고 최종 결과를 반환할 수 있습니다.여기서 사용된 로직은 다음과 같습니다:reduce 함수를 호출하면서 초기값으로 가장 큰 값을 가진 거래자 객체(max)를 설정합니다.배열의 각 요소를 순회하면서 현재 요소(trs)의 거래액을 최댓값과 비교합니다.만약 현재 요소의 거래액이 최댓값보다 크다면, 최댓값을 현재 요소로 업데이트합니다.모든 요소를 순회한 후에는 가장 큰 거래액을 가진 거래자의 정보가 최종적으로 max에 저장되게 됩니다.이렇게 하면 for문을 사용..
JavaScript* 배열고차함수 const userList = [ { account: 'abc1234', userName: '대길이', job: '추노', address: '서울', hobbys: ['수영', '축구', '테니스'], salary: 5400000, age: 35, }, { account: 'banana', userName: '빠나나', job: '과일', address: '서울', hobbys: ['푸드파이팅', '테니스'], salary: 9700000, age: 18, }, { account: 'park1234', userName: '주차왕', job: '발렛파킹', address: '경기', hobbys:..
JavaScript* 콜백 (Callback) 콜백이란??함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 콜백 함수라고 하고, 매개 변수를 통해 외부에서 콜백 함수를 전달받은 함수를 고차 함수라고 한다. 콜백의 핵심 : 동작을 파라미터화한다if문에 들어있는 조건식들만 파라미터로 전달한다면 쉽게 해결자바스크립트의 함수는 일급 객체라서 함수에게 다른 코드를 전달하는 것이 가능.단, 전달할 코드가 함수에 묶여있어야 한다는게 포인트 // 어떤 계산을 하는 함수function operate(param) { console.log(`param = ${param}`); const x = param(10, 20); console.log('계산기 작동!!'); const n1 = 10, n2 =20; const result = param(n1,n2..
JavaScript* 화살표 함수 화살표 함수 (arrow function)함수는 함수 선언문 방식과 함수 표현식 방식으로 만들 수 있다ES6부터는 더 간편한 방법으로 함수를 만드는 화살표 함수 문법이 추가되었다.///// 화살표 함수 // 중괄호(한줄일때), 리턴 제거가능(한줄일떄)const add = (n1, n2) => n1 + n2;const r1 = add(10, 20);console.log(`r1: ${r1}`);const sayHello = () => console.log('안녕하세요');sayHello();const kim = { name: '김철수', greeting: sayHello, dance: () => console.log('춤을 신나게 춥니다.')};kim. greeting();kim.dance();..
JavaScript* 스코프 (scope) 스코프(scope)란??모든 식별자(변수, 함수, 클래스 등)는 자신이 선언된 위치에 의해 다른 코드가 자신을 참조할 수 있는 유효 범위가 결정되는데 이를 스코프라고 부릅니다. 라고한다 var x = 99; // global scope : 전역 변수 // 다른코드랑 결합될수도 있음 최대한 안쓰는게좋음var y = true;function foo () { var x ='홍길동'; // local scope : 지역 변수 console.log(`foo x: ${x}`); var y = '메롱'; console.log(`foo y: ${y}`); var z = 100; return x;}전역 변수는 쓰지 않는 것이 좋다. // 중첩 함수 : 함수 안에 함수를 정의function outer(m) ..
JavaScript* 다중 매개변수와 다중 변환값 function add2(n1, n2) { return n1 + n2;}function add3(n1 , n2 , n3) { return n1 + n2 + n3;} 이처럼 코드가 계속 불어날 일이 생긴다면, // 만약 n개의 정수 합을 구해주는 함수를 만들어야 한다면// 파라미터에 집합 자료형(배열, 객체) 으로서 전달한다function addAll(numbers) { var total = 0; for (var n of numbers) { total +=n; } return total;} 이러한 식으로 하거나 // ES6 - spread문법 // 점 ... 세개 배열로들어감 여러개 스프레드는 안됨. only 1배열function addAllES6 (...numbers) { cons..
JavaScript* 함수 quiz Quiz 1/* Q. n의 약수의 개수를 구하기1. 정수 n을 전달받아 n의 약수들을 출력하고 약수의 개수를 리턴하는 함수 calcDivisor를 정의하세요.2. 약수의 출력은 함수 내부에서 이뤄져야 합니다.3. 힌트) 전달받은 n을 1부터 n까지 지속적으로 나누어나누어 떨어졌을 시 약수의 개수 카운트를 1증가시키고 출력.*/function calcDivisor (n) { var divCount = 0; var arr = []; for (var i=1; i 여기서 i 는 파라미터에 관한 즉 호출부 값 10에 관한 것이라는 걸 알 수 있다. 조건문이든 뭐든 관해서 사용하려면 i를 넣어준다.그리고 divcount로 갯수를 새고 arr.push로 배열을 만들어주는 것이다.        Quiz 2/*1...
JavaScript* 리턴(Return) Return 이란? 걍 반복문에 break와 비슷하다고 보면 된다. 대신 옆에 갚을 주고 출력할수있다.// return은 함수의 탈출문 (종료문)function add(n1, n2) { console.log(`n1: ${n1}, n2: ${n2}`); return n1 + n2;}  리턴이 없는 함수도 있다.// 리턴이 없는 함수function multi(n1, n2) { console.log(`${n1} x ${n2} = ${n1 * n2}`); } // 리턴이 없는 함수는 변수에 저장하지 말고, 다른 함수의 매개값으로도 쓰면 안됨.var r2 = add(multi(2, 4), multi(3, 2));console.log(`r2: ${r2}`);   // return이 없는 함수에서 return..