for
문forEach
문array.forEach(e => console.log(e*3));
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
// expected output: "a"
// expected output: "b"
// expected output: "c"
for of
문let array = [10, 20, 30, 40, 50];
let i = 0
for (let value of array) {
console.log(value);
}
-> 10 20 30 40 50
평균
let result = 0;
let array = [10, 20, 30, 40, 50];
let i = 0
for (let value of array) {
result += value;
}
console.log(result/array.length);
for : in은 인덱스값 출력 / of는 값을 출력
for in
문let array = [10, 20, 30, 40, 50];
for (let value in array){
console.log(value);
}
-> 0 1 2 3 4
이렇게 하면 위치만 나오고,
let array = [10, 20, 30, 40, 50];
for (let value in array){
console.log(array[value]);
}
-> 10 20 30 40 50
array[ ]
를 넣어줘야 값이 나온다!
while
문let i = 0;
while(i < 10){
console.log(i);
++i;
}
0 부터 9까지 출력 된다.
let i = 0;
let result = 0;
while ( i < 101){
result += i;
i+=2;
}
console.log(result);
do while
문앞에껄 무조건 실행하고, while 조건에 맞을 때까지 반복한다.
그냥 참고 삼아서만 봅시다.
let num = 0;
do {
console.log(num);
num += 1;
} while (num < 11);
let i = 2;
let j = 1;
while ( i < 10) {
while ( j < 10) {
console.log(`${i} X ${j} = ${i*j}`);
j++;
}
i++;
j=1;
}
2단에서 j
가 10이 되어서 while
문을 탈출하니까 다시 다음단으로 가기 전에 j
를1로 만들어주어야 한다.
break & continue
break
for (let i = 0; i < 10; i++) {
if (i == 5) break;
console.log(i);
}
// 이렇게 되면 i가 5가 되면 멈추기 때문에 i는 0부터 4까지의 값만 나온다.
break
를 만나면 다음 줄에 있는 코드를 실행하지 않고 반복문을 종료한다.
break - mozilla 참고링크:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break
continue
for (let i = 0; i < 10; i++) {
if (i == 5) continue;
console.log(i);
}
continue - mozilla 참고링크:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/continue
string
let s = 'abcdefABCDEF';
console.dir(s);
-> abcdefABCDEF
s.length
-> 12
s.indexOf('cde')
-> 2
s.search('ABC')
-> 6
s.indexOf('G')
-> -1
s.search('G')
-> -1
search
와indexOf
의 차이 - 참고링크:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/search
indexof
는 시작값을 설정할 수 있고, search
는 정규표현식을 사용할 수 있다.
s.slice(0, 3)
-> 'abc'
s.slice(7, 8)
-> 'B'
s.slice(6,9)
-> 'ABC'
s.substring(6,9)
-> 'ABC'
slice
랑 substring
동작방식이 같다.
차이: 음수값을 넣었을 때 결과값이 다르다.
substring
은 -값을 0으로 출력한다. slice
는 -값을 찾아간다.
substring
- mozilla 참고링크:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring
s.substr(6,3)
-> 'ABC'
6번째부터 3개를 가져오겠다.
s.replace('ABC', 'hojun')
-> 'abcdefhojunDEF'
1.1 다음 값의 평균을 구하세요.
let aver = [10, 20, 30, 10, 20, 30, 40, 10];
let average = 0;
for (let i = 0; i < aver.length; i++){
average += aver[i] / aver.length;
}
평균: 21.25
1.2 다음 값의 분산를 구하세요.
let variance = 0;
for(let i = 0; i< aver.length; i++){
variance += (aver[i]-average)**2
}
(variance/aver.length)**0.5
표준편차: 10.532687216470448
분산: 110.9375
2. 다음 string의 평균 값을 구하세요
'5, 4, 10, 2, 5'
내 답:
let a = '5, 4, 10, 2, 5';
let b = a.split(', ');
let result = 0;
for (let i = 0; i < b.length; i++){
result += +b[i] / b.length;
}
풀이 답:
let s = '5, 4, 10, 2, 5';
let splistS = s.split(',');
console.log(splistS);
let sum = 0;
for (var variable of splistS) {
sum += parseInt(variable, 10);
}
console.log(sum/splistS.length);
풀이 답은 for of문을 사용했다.:)
그래도 혼자 우주 속에서 허우적거리고 있었는데, 하나하나 풀어서 이해하려고 해보니 그래도 아아아주 조금은 풀 수 있는 것 같다.
잘한점
고칠점