알고리즘을 위한 막 메모
Hello, JavaScript: 자바스크립트 입문
let a = 100, b = 3.14;
let c = "안녕하세요", d = "a";
let e = true, f = false;
console.log(a, typeof (a));
console.log(c, typeof (c));
console.log(e, typeof (e));
let c=1e-3;
console.log(c) //0.001
let height="168.3"
console.log(height, typeof(height)); //168.3 string
let height_int = parseInt(height);
console.log(height_int, typeof(height_int)); //168 number
let height_float = parseFloat(height);
console.log(height_float, typeof(height_float)); //168.3 number
let height="168.3입니다"
console.log(height, typeof(height)); //168.3입니다 string
let height_int = parseInt(height); 정수
console.log(height_int, typeof(height_int)); //168 number
let height_float = parseFloat(height); 실수
console.log(height_float, typeof(height_float)); //168.3 number
let height="제 키는 168.3입니다"
console.log(height, typeof(height)); //제 키는 168.3입니다 string
let height_int = parseInt(height);
console.log(height_int, typeof(height_int)); // NaN number
let height_float = parseFloat(height);
console.log(height_float, typeof(height_float)); // NaN number
let a = '문자열을 따옴표로 둘러싸면 됩니다.';
let b = "쌍따옴표로도 문자열을 표현할 수 있습니다.";
let c = "쌍따옴표 문자열에는 따옴표'를 사용할 수 있습니다.";
let d = '따옴표 문자열에는 쌍따옴표 "를 사용할 수 있습니다.';
let e = "따옴표를 쓰고 싶다면 \'이렇게\' 사용하면 됩니다. 마찬가지로 \"쌍따옴표\"도 쓸 수 있습니다.";
let f = '따옴표를 쓰고 싶다면 \'이렇게\' 사용하면 됩니다. 마찬가지로 \"쌍따옴표\"도 쓸 수 있습니다.';
let g = "\\ 문자를 쓰고 싶다면 역슬래시를 두번 씁니다.";
let h = "문자열에서 줄바꿈을 하고 싶다면,\n 역슬래시n 을 사용합니다.";
let i = a = b;
let j = "abcde";
console.log(a); //쌍따옴표로도 문자열을 표현할 수 있습니다.
console.log(b); //쌍따옴표로도 문자열을 표현할 수 있습니다.
console.log (typeof(a)); //string
console.log(c);
//쌍따옴표 문자열에는 따옴표'를 사용할 수 있습니다.
console.log(d);
//따옴표 문자열에는 쌍따옴표 "를 사용할 수 있습니다.
console.log(e);
//따옴표를 쓰고 싶다면 '이렇게' 사용하면 됩니다. 마찬가지로 "쌍따옴표"도 쓸 수 있습니다.
console.log(f);
//따옴표를 쓰고 싶다면 '이렇게' 사용하면 됩니다. 마찬가지로 "쌍따옴표"도 쓸 수 있습니다.
console.log(g);
//\ 문자를 쓰고 싶다면 역슬래시를 두번 씁니다.
console.log(h);
//문자열에서 줄바꿈을 하고 싶다면,
역슬래시n 을 사용합니다.
console.log(i);
//쌍따옴표로도 문자열을 표현할 수 있습니다.
console.log(j);
//abcde
let empty_obj = {};
console.log(empty_obj, typeof(empty_obj)); // {} object
let man = {name: "홍길동", age: 20, height:180 };
console.log(man, typeof(man)); // { name: '홍길동', age: 20, height: 180 } object
console.log(man.name); // 홍길동
console.log(man["name"]); // 홍길동
man.name = "이몽룡";
man["age"] = 15;
console.log(man); // { name: '이몽룡', age: 15, height: 180 }
let uninitialized_let;
let obj = {
x:1,
y:2
};
let null_let;
null_let = null; // null이라는 빈 객체가 저장되어있다.
console.log(uninitialized_let, typeof(uninitialized_let))// undefined undefined
console.log(obj)// { x: 1, y: 2 }
console.log(obj["x"])// 1
console.log(obj.x) // 1
console.log(obj.z, typeof(obj)) //비어있고, 지정하지 않았다 // undefined object
console.log(null_let, typeof(null_let))//비어있지만 null을 넣었다 //null object
산술 연산자 Arithmetic Operator
let a = 5, b = 3;
console.log(a+b); //8
console.log(a-b); //2
console.log(a+3); //8
console.log(5+3); //8
console.log(a*b); //15
console.log(a/b); //1.6666666666666667
console.log(a%b); //2
console.log(-a); //-5
let c = 4;
console.log(c); //4
console.log(++c); //c = c + 1; //5
console.log(c); //5
let d = 4;
console.log(d); //4
console.log(d++); // d = d + 1; //4
console.log(d); //5
let e = 5;
console.log(e); //5
console.log(--e); //4
console.log(e); //4
let f = 5;
console.log(f); //5
console.log(f--); //5
console.log(f); //4
Math.pow(2,3); //제곱
console.log(Math.pow(2,3)) //8
Math.sqrt(16); //제곱근
console.log(Math.sqrt(16)) //4
Math.random(); //아무거나, 임의의 숫자 난수
console.log(Math.random()) //0.1581636151840229
함수
함수를 '호출'한다.
console.log("콘솔에 로그를 남기는 함수");
function 함수이름 (인자1, 인자2) {
실행할 코드
return 결과값;
}
function return_test() {
return;
console.log("실행되지 않는 코드");
}
function print(message){
console.log("print function in");
console.log(message);
console.log("print function out");
}
function sum(arg1, arg2){
let result = arg1 + arg2;
return result;
}
return_test();
undefined
print("hi");
print function in
hi
print function out
undefined
sum(1 ,2);
3
let a = 1, b = 2, c = 3, d = 4;
let e = "a", f = "b", g = "c", h = "d";
a<b
true
a>b
false
a<=b
true
a>=b
false
a===a
true
a===b
false
a!=b
true
a!=a
false
e!=e
false
e===e
true
e<f
true
f<e
false
1<3
true
"a"<"b"
true
Logical Operator 논리 연산자 And Or Not
&& 둘 다 true여야 true반환
|| 둘 중 하나라도 true이면 true반환
!true
false
!false
true
연산의 우선순위
- Logical Operator: NOT(!)
- Arithmetic Operator: *,/,%,+,-
- Relational Operator: >,<,<=,>=,==,!=
- Logical Operator: AND (&&)
- Logical Operator: OR (||)
2 3 > 4 + 5 && 6 / 3 == 2 || !false
-> 2 3 > 4 + 5 && 6 / 3 == 2 || true
-> 6 > 9 && 2 == 2 || true
-> false && true || ture
-> false || true
-> true
height >= 180 && gender == "male" || height >= 165 && gender == "female"
(height >= 180 && gender == "male") || (height >= 165 && gender == "female")
코드만 보고 명확하게 알 수 있는 것은 두 번째 코드. 괄호쓰기에 유의하기.
문자열 String 이어 붙이기
let str = "Hello";
undefined
str.length;
5
str["length"];
5
let str2 = " World";
undefined
str.concat(str2);
'Hello World'
let str3=str.concat(str2);
undefined
str3;
'Hello World'
str.concat(str2).concat("!");
'Hello World!'
"Hello".concat(" World").concat("!");
'Hello World!'
"hello".length
5
str+str2;
'Hello World'
"Hello" + "World"
'HelloWorld'
"Pi is " + 3.14
'Pi is 3.14'
3.14 " is" + Pi
REPL43:1
3.14 " is" + Pi
SyntaxError: Unexpected string
3.14 + " is Pi";
'3.14 is Pi'
let str = "abcdeabcde";
undefined
str.charAt(0);
'a'
str.length
10
str.charAt(9);
'e'
str.charAt(10);
''
str.charAt(-1);
''
str[1]; 인덱스로 지정
'b'
str[10]; 범위를 벗어난 경우
undefined
str[-1];
undefined
str.substring(2, 4); 2에서 4 -> 인덱스2자리에서 에서 4자리의 전까지 표기
'cd'
str.substr(2,4); 인덱스2에서 인덱스 길이가 4개.
'cdea'
str.substring(2); 두번째 숫자를 생략하면 자동으로 마지막까지
'cdeabcde'
str.substr(2);
'cdeabcde'
str.substr(-7); 음수인 경우, 뒤에서부터 하나로 카운트, 부분 문자열을 구할 수 있다.
'deabcde'
str
'abcdeabcde'
str.substr(-7,2); 길이
'de'
str.indexOf("bc"); bc가 시작되는 자리 인덱스1
1
str.lastIndexOf("bc"); bc가 시작되는 마지막 인덱스 자리 6
6
str.lastIndexOf("f"); 존재하지 않는 문자열은 -1
-1
배열 object객체와 다르게 이름이 없고, 인덱스로 나열만 되어있다.
let arr=[];
undefined
let arr2=[1,2,3,4,5];
undefined
arr2;
[ 1, 2, 3, 4, 5 ]
let mixed_arr = [1,true, 3.14, "string", {name:"object"}, [1,2,3]];
undefined
mixed_arr
[ 1, true, 3.14, 'string', { name: 'object' }, [ 1, 2, 3 ] ]
mixed_arr.length
6
arr2.length
5
arr.length
0
arr2[0]
1
arr2[3]
4
arr2[7];
undefined
pop, push, shift, unshift
Hint: hit control+c anytime to enter REPL.
let arr = [1,2,3,4,5];
undefined
arr.pop();
5
arr
[ 1, 2, 3, 4 ]
arr.shift();
1
arr
[ 2, 3, 4 ]
arr.push(6);
4
arr;
[ 2, 3, 4, 6 ]
arr.unshift(0);
5
arr
[ 0, 2, 3, 4, 6 ]
arr.reverse();
[ 6, 4, 3, 2, 0 ]
arr;
[ 6, 4, 3, 2, 0 ]
arr.sort();
[ 0, 2, 3, 4, 6 ]
arr;
[ 0, 2, 3, 4, 6 ]
let arr1 = [1,2,3];
undefined
let arr2 = [4,5,6];
undefined
arr1.concat(arr2);
[ 1, 2, 3, 4, 5, 6 ]
arr1
[ 1, 2, 3 ]
arr2
[ 4, 5, 6 ]
arr3 = arr1.concat(arr2);
[ 1, 2, 3, 4, 5, 6 ]
let arr4 = [1,2,3,1,2,3];
undefined
arr4.indexOf(2);
1
arr4.lastIndexOf(2);
4
let str = "1,2,3,4,5";
undefined
str.split(",");
[ '1', '2', '3', '4', '5' ]
if문
if(true){
console.log("1");
}
else{
console.log("2");
}
//1
if(false){
console.log("1");
}
else{
console.log("2");
}
//2
if (false) {
console.log("1");
}
else if (true) {
console.log("2");
}
else if (true) {
console.log("3");
}
else {
console.log("4");
}
//2
윤년인지 확인!
인자 year가 윤년인지 아닌지를 true, false로 반환하는 solution함수를 완성하세요.
(편의상, 4의 배수인 해는 모두 윤년으로 생각하세요.)
function solution( year ){
//if 문을 추가하세요
if (year % 4 === 0)
return true;
//else 문을 추가하세요
else
return false;
}
switch문
console.log("Menu");
console.log("1. Ice Americano");
console.log("2. Cafe Latte");
console.log("3. Cappuccino");
console.log("4. Tea");
let choice = parseInt( prompt("메뉴를 선택해 주세요"));
console.log( choice + " 번 메뉴를 선택하셨습니다.");
if (choice === 1) {
console.log("아이스 아메리카노는 1500원 입니다.");
}
else if ( choice === 2) {
console.log("카페라테는 1800원 입니다.");
}
else if ( choice === 3) {
console.log("카푸치노는 2000원 입니다.");
}
else if ( choice === 4) {
console.log("홍차는 1300원 입니다.");
}
else{
console.log("죄송합니다. 그런 메뉴는 없습니다.");
}
Menu
1. Ice Americano
2. Cafe Latte
3. Cappuccino
4. Tea
메뉴를 선택해 주세요> 1
1 번 메뉴를 선택하셨습니다.
아이스 아메리카노는 1500원 입니다.
console.log("Menu");
console.log("1. Ice Americano");
console.log("2. Cafe Latte");
console.log("3. Cappuccino");
console.log("4. Tea");
let choice = parseInt( prompt("메뉴를 선택해 주세요"));
console.log( choice + " 번 메뉴를 선택하셨습니다.");
switch (choice) {
case 1:
console.log("아이스 아메리카노는 1500원 입니다.");
break;
case 2:
console.log("카페라테는 1800원 입니다.");
break;
case 3:
console.log("카푸치노는 2000원 입니다.");
break;
case 4:
console.log("홍차는 1300원 입니다.");
break;
default:
console.log("죄송합니다. 그런 메뉴는 없습니다.");
break;
}
Menu
1. Ice Americano
2. Cafe Latte
3. Cappuccino
4. Tea
메뉴를 선택해 주세요> 3
3 번 메뉴를 선택하셨습니다.
카푸치노는 2000원 입니다.
Hint: hit control+c anytime to enter REPL.
console.log("Menu");
console.log("1. Ice Americano");
console.log("2. Cafe Latte");
console.log("3. Cappuccino");
console.log("4. Tea");
let choice = parseInt( prompt("메뉴를 선택해 주세요"));
console.log( choice + " 번 메뉴를 선택하셨습니다.");
switch (choice) {
case 1:
console.log("아이스 아메리카노는 1500원 입니다.");
//break;
case 2:
console.log("카페라테는 1800원 입니다.");
break;
case 3:
console.log("카푸치노는 2000원 입니다.");
break;
case 4:
console.log("홍차는 1300원 입니다.");
break;
default:
console.log("죄송합니다. 그런 메뉴는 없습니다.");
break;
}
Menu
1. Ice Americano
2. Cafe Latte
3. Cappuccino
4. Tea
메뉴를 선택해 주세요> 1
1 번 메뉴를 선택하셨습니다.
아이스 아메리카노는 1500원 입니다.
카페라테는 1800원 입니다.
break가 주석처리되면 다음 break때 걸리게 된다.
각 달을 month라는 인자로 받아 그 달이 몇일까지 있는 반환하는 함수 solution함수를 완성하세요.
(2월은 28일까지 있다고 가정하세요.)
function solution(month) {
switch(month) {
case 2:
return 28;
case 4: case 6: case 9: case 11:
return 30;
default:
return 31;
}
}
console.log(solution(1)); // 31
while문
console.log("Menu");
console.log("1. Ice Americano");
console.log("2. Cafe Latte");
console.log("3. Cappuccino");
console.log("4. Tea");
let count = 0;
while (count < 3) {
let choice = parseInt( prompt("메뉴를 선택해 주세요"));
console.log( choice + " 번 메뉴를 선택하셨습니다.");
switch (choice) {
case 1:
console.log("아이스 아메리카노는 1500원 입니다.");
//break;
case 2:
console.log("카페라테는 1800원 입니다.");
break;
case 3:
console.log("카푸치노는 2000원 입니다.");
break;
case 4:
console.log("홍차는 1300원 입니다.");
break;
default:
console.log("죄송합니다. 그런 메뉴는 없습니다.");
break;
}
count++; 한 번씩 반복하며 카운트, 세 번까지 물어보도록 설정
}
console.log("안녕히 가십시오.");
Menu
1. Ice Americano
2. Cafe Latte
3. Cappuccino
4. Tea
메뉴를 선택해 주세요 1
1 번 메뉴를 선택하셨습니다.
아이스 아메리카노는 1500원 입니다.
카페라테는 1800원 입니다.
메뉴를 선택해 주세요> 4
4 번 메뉴를 선택하셨습니다.
홍차는 1300원 입니다.
메뉴를 선택해 주세요> 3
3 번 메뉴를 선택하셨습니다.
카푸치노는 2000원 입니다.
안녕히 가십시오.
Hint: hit control+c anytime to enter REPL.
let count = 0;
while(true){
let ans;
ans = parseInt( prompt("1+1=?"));
if(ans != 2){
console.log((++count)+"번 틀렸습니다. 다시 도전하세요.");
continue;
}
ans = parseInt( prompt("7-3=?"));
if(ans != 4){
console.log((++count)+"번 틀렸습니다. 다시 도전하세요.");
continue;
}
ans = parseInt( prompt("9*7=?"));
if(ans != 63){
console.log((++count)+"번 틀렸습니다. 다시 도전하세요.");
continue;
}
break;
}
console.log("참 잘했습니다!")
1+1=?> 3
1번 틀렸습니다. 다시 도전하세요.
1+1=?> 3
2번 틀렸습니다. 다시 도전하세요.
1+1=?> 3
3번 틀렸습니다. 다시 도전하세요.
1+1=?> 3
4번 틀렸습니다. 다시 도전하세요.
1+1=?> 2
7-3=?> 4
97=?> 2
5번 틀렸습니다. 다시 도전하세요.
1+1=?> 2
7-3=?> 4
97=?> 33
6번 틀렸습니다. 다시 도전하세요.
1+1=?> 2
7-3=?> 4
9*7=?> 63
참 잘했습니다!
Hint: hit control+c anytime to enter REPL.
count를 0으로 초기화하고 while문 안에서 1씩 더해주고 있습니다. 이렇게 하면 count가 9까지 증가한 다음 while문의 조건에 따라 반복이 종료됩니다. [실행]버튼을 눌러서 실행 결과를 확인해 보세요.
let count = 0;
while( count < 10){
console.log( count );
count++;
}
함수 solution은 n을 인자로 받아서 1부터 n까지 더한 값을 return하는 함수입니다. 예를들어 solution(3)을 호출하면 1+2+3인 6을 return합니다.
코드 4번째줄과와 코드 5번째줄의 빈칸을 채워 solution을 완성해 보세요.
function solution(n){
let count = 1;
let sum = 0;
while (count <= n) {
sum = sum + count;
count++;
}
return sum;
}
console.log(solution(3)) //6
do while문
반복을 할지 말지를 반복문의 가장 마지막에 검사.
코드가 한 번은 실행, 더 반복할지 말지를 조건식을 보고 결정
do{
var ans = parseInt(prompt("1+1=?")); // 의식적으로 let쓰고 있었는데, var가 아니면 생각했던대로 실행이 되지 않았다.
}while(ans !=2 );
console.log("맞췄습니다.");
let cond = false;
while(cond){
console.log("이 구문은 실행되지 않습니다.");
}//false로 설정을 해두었기 때문이다
do{
console.log("이 구문은 한번은 실행됩니다.");
}while(cond);
do{
var ans = parseInt(prompt("1+1=?"));
}while(ans !=2 );
console.log("맞췄습니다.");
이 구문은 한번은 실행됩니다.
1+1=?> 3
1+1=?> 3
1+1=?> 3
1+1=?> 2 //맞출 때까지 계속 진행
맞췄습니다.
for문
let array = [1,2,3,4,5,6,7,8,9,10]; 엘리먼트에 순차적으로 접근해야한다.
let i = 0; // 반복문 진입 전 실행될 조기 코드, i 변수로 인덱스 지정,
while (i< array.length){ // 조건식
// 반복 실행될 코드
console.log(array[i]);
i++; // 반복문 코드가 한번 실행되고 나면 실행될 업데이트 구문
}
1
2
3
4
5
6
7
8
9
10
let array = [1,2,3,4,5,6,7,8,9,10];
for ( var i = 0; i < array.length ; i++ ){ //조건식
//반복 실행될 코드
console.log( array[i]);
}
1
2
3
4
5
6
7
8
9
10
for문에서 continue;문을 만나면 update구문(= i++)으로 이동, 조건식을 검사한 후에 반복실행할지 말지를 결정한다.
while문에서 continue;문을 반복실행 코드의 끝으로 이동한 다음, 바로 조건식 검사
for문을 이용해서 배열 cost의 값을 모두 더해 total_cost 변수에 저장하세요.
let cost = [ 85, 42, 37, 10, 22, 8, 15 ];
let total_cost = 0;
// 여기에 코드를 작성하세요.
for (let i = 0; i < cost.length ; i++)
{total_cost = total_cost + cost[i];} = {total_cost += cost[i];}
console.log(total_cost)
return total_cost
for in문
...?
변수의 scope function scope
선언된 변수는 선언된 함수 안에서 접근 가능
변수의 shadowing
...? var i = 1...?
method, this
...?
closure
...?
by엘리
// Q1. iterate from 0 to 10 and print only even numbers
//(use continue)
for (let i = 0; i < 11 ; i++) {
if (i % 2 === 0) {
console.log(`q1. ${i}`);
}
}
// Q2. iterate from 0 to 10 and print numbers until reaching 8 (use break)
for (let i = 0; i < 11; i++) {
if (i > 8) {
break;
}
console.log(`q2.${i}`);
}
by엘리
'use strict';
// Array🎉
// 1. Declaration
const arr1 = new Array();
const arr2 = [1, 2];
// 2. Index position
const fruits = ['사과', '바나나'];
console.log(fruits); // ['사과', '바나나']
console.log(fruits.length); // 2
console.log(fruits[0]); //'사과'
console.log(fruits[1]); //'바나나'
console.log(fruits[2]); // undefined
console.log(fruits[fruits.length - 1]); 배열의 맨 마지막 데이터에 접근
// 3. Looping over an array
// print all fruits
// a. for
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// b. for of
for (let fruit of fruits) {
console.log(fruit);
}
// c. forEach
fruits.forEach((fruit) => console.log(fruit));
//4. Addition, deletion, copy
// push: add an item to the end
fruits.push('딸기','복숭아');
console.log(fruits); // ['사과', '바나나', '딸기', '복숭아']
// pop: remove an item from the end
fruits.pop();
fruits.pop();
console.log(fruits); // ['사과', '바나나', '딸기']// ['사과', '바나나'] 한번 더 호출하면 또 삭제됨
// unshift: add an item to the beginning
fruits.unshift('딸기','레몬');
console.log(fruits); // ['딸기','레몬','사과','바나나']
// shift: remove an item from the beginning
fruits.shift();
fruits.shift();
console.log(fruits); // ['레몬','사과','바나나'] // ['사과','바나나']
// note!! shift, unshift are slower than pop, push
//splice: remove an item by index position 꼬아서 잇다
fruits.push('딸기','복숭아','레몬');
console.log(fruits); //['사과','바나나','딸기','복숭아','레몬']
fruits.splice(1); // 지정한 인덱스부터 모두 지운다.
fruits.splice(1, 1); ////지정한 인덱스부터 하나만 (인덱스 자신이 됨)
console.log(fruits); ['사과'] //// console.log(fruits); ['사과', '딸기', '복숭아', '레몬']
fruits.splice(1, 1, '초록사과', '수박');
console.log(fruits); // ['사과', '초록사과', '수박', '복숭아', '레몬'] 딸기가 사라진 자리에 데이터 추가
// concat: combine two arrays
const fruits2 = ['배', '코코넛'];
const newFruits = fruits.concat(fruits2);
console.log(newFruits); //['사과', '초록사과', '수박', '복숭아', '레몬', '배', '코코넛']
//5. Searching
// indexOf: find the index
console.log(fruits); //['사과', '초록사과', '수박', '복숭아', '레몬']
console.log(fruits.indexOf('사과')); // 0
console.log(fruits.indexOf('수박')); // 2
console.log(fruits.indexOf('참외')); // -1
// includes
console.log(fruits.includes('수박')); // true
console.log(fruits.includes('참외')); // false
// lastIndexOf
console.log(fruits); // ['사과', '초록사과', '수박', '복숭아', '레몬']
fruits.push('사과');
console.log(fruits); // ['사과', '초록사과', '수박', '복숭아', '레몬', '사과']
console.log(fruits.indexOf('사과')); //0
console.log(fruits.lastIndexOf('사과')); //5
by엘리 api 총정리 퀴즈 - replit에 찍어보며 할 것
// Q1. make a string out of an array 배열을 문자형으로 변환
{
const fruits = ['apple', 'banana', 'orange'];
const result = fruits.join(', ');
console.log(result);
}
// Q2. make an array out of a string 문자열을 배열로 만들기, 구분자 꼭 전달
{
const fruits = '🍎, 🥝, 🍌, 🍒';
const result = fruits.split(',', 2);
console.log(result);
}
// Q3. make this array look like this: [5, 4, 3, 2, 1]
{
const array = [1, 2, 3, 4, 5];
const result = array.reverse();
console.log(result);
console.log(array);
}
// Q4. make new array without the first two elements
{
const array = [1, 2, 3, 4, 5];
//const result = array.splice(0, 2); 원하는 부분만 가지고 쓰고 싶을 때
//console.log(result); // [1, 2]
//console.log(array); // [3, 4, 5] array변형이 아니라 새로운 array를 만들어야함
const result = array.slice(2, 5);
console.log(result);
console.log(array);
}
class Student {
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student('A', 29, true, 45),
new Student('B', 28, false, 80),
new Student('C', 30, true, 90),
new Student('D', 40, false, 66),
new Student('E', 18, true, 88),
];
// Q5. find a student with the score 90 callback...
{
const result = students.find((student) => student.score === 90);
console.log(result);
}
// Q6. make an array of enrolled students 골라내서 배열로 만들기
{ const result = students.filter((student) => student.enrolled);
console.log(result)
}
// Q7. make an array containing only the students' scores
// result should be: [45, 80, 90, 66, 88]
{
const result = students.map((student) => student.score);
console.log(result);
}
// Q8. check if there is a student with the score lower than 50
{
const result = students.some((student) => student.score < 50);
console.log(result);
// 어떤 것이라도 하나, 확인하고 싶을 때
const result2 = !students.every((student) => student.score >= 50);
console.log(result2);
// 모든 배열의 조건이 만족되어야 할 때
}
// Q9. compute students' average score
{ const result = students.reduce((prev, curr) => prev + curr.score, 0);
console.log(result / students.length);
}
// Q10. make a string containing all the scores
// result should be: '45, 80, 90, 66, 88'
{
const result = students
.map( student => student.score)
.filter((score) => score >= 50)
.join();
console.log(result);
}
// Bonus! do Q10 sorted in ascending order
// result should be: '45, 66, 80, 88, 90'
{
const result = students
.map( student => student.score)
.sort((a, b) => a - b)
.join();
console.log(result);
//.sort((a, b) => b - a) 내림차순
}
by 엘리
함수 선언
function doSomething( ) {
console.log('hello');
}
function add (a, b) {
const sum = a + b;
return sum;
}
함수 호출
doSomething();
const result = add(1, 2);
console.log(result);
***함수를 인자로 전달
함수 선언
function doSomething(add) {
console.log(add);
const result = add(2, 3);
console.log(result);
}
function add(a, b) {
const sum = a + b;
return sum;
}
함수 호출
doSomething(add);
doSomething(add()); // NaN (not a number)
*** 선언 & 호출 복습
function add(a, b) {
const sum = a + b;
return sum;
}
const addFun = add;
console.log(addFun);
addFun(1, 2);
-> const result = addFun(1, 2);
console.log(result)
Hello, JavaScript: 자바스크립트 입문 전 범위
자바스크립트 8. 배열 제대로 알고 쓰자. 자바스크립트 배열 개념과 APIs 총정리 | 프론트엔드 개발자 입문편 (JavaScript ES6 )
자바스크립트 9. 유용한 10가지 배열 함수들. Array APIs 총정리 | 프론트엔드 개발자 입문편 ( JavaScript ES6)
프로그래밍 포기 하지 마세요 (자바스크립트 함수 기본편)
Author And Source
이 문제에 관하여(알고리즘을 위한 막 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinju_woo/알고리즘을-위한-막-메모저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)