-
[TIL] 0102카테고리 없음 2024. 1. 2. 11:30
let numbers = [1, 2, 3, 4, 5]
콜백 함수 : 매개변수 자리에 함수를 넣는 것
1) forEach : 배열 요소의 개수만큼 실행된다.
numbers.forEach(function (이름) {
console.log(이름);
})
2) map : 반드시 return 문이 필요하다. 기존에 있었던 배열을 가공해서 새로운 배열을 생산해 내는 역할
원본 배열의 길이만큼 return 을 한다. 조건을 설정해주지 않으면 undefined 로 뜨더라도 원본 배열의 길이가 나온다.
let newNumbers = numbers.map (function (item) {
return item *2;
});
console. log(newNumbers)
// [2, 4, 6, 8, 10]
3) filter - 조건에 해당되는 값만 리턴을 한다.
let filteredNumbers = numbers .filter (function (item) {
return item >3;
});
console.log(filteredNumbers);
4) find - 조건의 첫 번째 해당 값을 반환한다.
let result = numbers .find (function (item) {
return item >3;
})
console.log(result); // 4
5) for , while - ~동안 , 반복문
for (초기값; 조건식; 증감식;) {
}
for (let i = 0; i<10; i++){
console.log(i);
}
// i 라는 변수는 0부터 시작하고, 10에 도달하기 전까지 반복하며, 한 싸이클이 돌고 나면 1을 더할 거야 라는 의미
// 배열과 for 문은 짝꿍이다.
const arr = ["one", "two", "three", "four", "five"];
for (let i = 0; i<arr.length; i++) {
console.log(i);
console. log(arr[i]);
}
//
0
one
1
two
2
three
3
four
4
five
ex) 0~10 의 수 중에 2의 배수만 console. log 로 출력하는 예시
for (let i = 0; i<11; i++) {
if (i>=2){
if(i%2 ===0) {
console. log(i);
}
}
6) for ~in문 - 객체의 속성을 출력하는 문법
let person = {
name : "John",
age : 30,
gender : "male",
};
for (let key in person) {
console. log(key + ":" + person[key]);
}
person[key] : person 의 value 값을 표현
7) while
let i = 0;
while (조건) {
// 메인 로직
// 증감
}
while ( i<10 ) {
console.log(i);
i ++; //이 로직이 없으면 그냥 0으로 무한 반복, 빼먹으면 안됨 **
}
// while 문 활용, 3초과 100미만 숫자 중 5의 배수인 것만 출력하는 예시
let i = 3;
while (i<100) {
if (i%5 === 0 && i>=5) {
console.log (i + "는 5의 배수 입니다.") ;
}
i++;
}
8) do ~while 문
let i = 0;
do {
console.log(i);
i ++;
} while (i>10);
9) break, continue 문 (for 문과 같이 쓰인다.)
for ( let i = 0; i<10; i++) {
if (i===5) {
break;
}
console.log(i);
}
// 0 1 2 3 4 (5를 만나면 For 문을 stop 한다.)
for ( let i = 0; i<10; i++) {
if (i===5) {
continue;
}
console.log(i);
}
// 0 1 2 3 4 6 7 8 9 (5를 만나면 다음 순서로 넘어간다.)
문제 1..;;;
//1. 대문자로 통일s = s.toUpperCase();
//2. for문을 통해서 문자열의 요소 하나씩을 비교//2-1. p,y 의 비교var num = 0;
for (var i=0; i<s.length; i++) {//여기에서 비교if(s[i] === 'P') {num++;}if(s[i] === 'Y') {num--;}}// 3. 개수 체크if (num === 0){answer = true;} else {answer = false;}대문자로 통일 하는 함수 toUpperCase() 을 이용하여 문자열의 모든 문자를 대문자로 출력한다.
s[i] 값에서 P 가 존재할 경우 num = 0 에서 +1,
s[i] 값에서 Y 가 존재할 경우 num = 0 에서 -1,
p와 y가 같은 수일 경우 num 의 값은 0이 되므로
num === 0 일 경우에 true , 그 외의 경우에는 false 를 반환한다.
문제 2...;;;;;
//1.return 해야 하는 answer 생성var answer = 0;
// 2. 두 배열을 비교해 가면서 값을 더하거나 빼줄 것// 2-1. 두 배열은 크기가 같음for (var i=0; i<absolutes.length; i++){//부호 (+,-) 에 따른 처리if (signs[i] === true){//값이 true 인 경우(양수)answer = answer + absolutes[i];} else if (signs[1] === false) {//값이 false 인 경우(음수)answer = answer - absolutes[i];}}answer 값을 0으로 선언
값이 true 인 경우 +, false 인 경우 - 로 해서 계산