var fruit = ['apple', 'banana', 'grape', 'mango', 'pear'];
fruit.forEach((value, index)=> {
console.log('value: ' + value + ' index: ' + index)
})
var arr_1 = [1, 2, 3];
var arr_2 = [4, 5, 6];
var arr_3 = [...arr_1, ...arr_2];
console.log(arr_3);
var str = 'apple';
var separate = [...str];
console.log(separate[0]);
console.log(separate[1]);
console.log(separate[2]);
console.log(separate[3]);
console.log(separate[4]);
var arr = [1, 2, 3, 4, 5];
var str_1 = arr.join('');
console.log(str_1);
var str_2 = arr.join(' ');
console.log(str_2);
var str_3 = arr.join();
console.log(str_3);
var str = 'apple';
var index = str.indexOf('a');
console.log(index);
var index = str.indexOf('p');
console.log(index);
문자열 안에서 특정 문자를 찾아서 index를 리턴해줍니다.
문자열의 맨 앞부터 탐색해서 최초로 발견되는 index를 리턴합니다
var str = 'apple';
var index = str.indexOf('ple');
console.log(index);
var index = str.indexOf('z');
console.log(index);
문자열도 기가막히게 찾아내는 모습입니다. 문자열을 찾을때는 일치하는 문자열의 첫번째 index를 리턴해줍니다.
만약 문자를 찾지 못했다면 -1을 리턴합니다.
var str = 'apple';
var index = str.lastIndexOf('a');
console.log(index);
var index = str.lastIndexOf('p');
console.log(index);
var str = 'apple';
var index = str.indexOf('a', 1);
console.log(index);
1번 인덱스부터 마지막까지 탐색을 했지만, 탐색에 실패하여 -1을 리턴한 모습입니다.
var str = 'apple';
var index = str.lastIndexOf('e', 3);
console.log(index);
3번 인덱스부터 처음까지 탐색을 했지만, 탐색에 실패하여 -1을 리턴한 모습입니다.
var arr = [1, 2, 3, 4, 5];
var minimum = Math.min(...arr);
console.log(minimum);
var maximum = Math.max(...arr);
console.log(maximum);
var arr = [1, 2, 3, 4, 5];
arr.push(6);
console.log(arr);
var arr = [1, 2, 3, 4, 5];
arr.unshift(0);
console.log(arr);
var arr = [1, 2, 3, 4, 5];
arr.pop();
console.log(arr);
var arr = [1, 2, 3, 4, 5];
arr.shift();
console.log(arr);
var arr = [1, 2, 3, 4, 5];
arr.splice(2, 1); //2번째 인덱스에서 1개 제거해라
console.log(arr);
var arr_1 = [1, 2, 3, 4, 5];
var arr_2 = arr_1.slice(2, 4); //2번째 인덱스부터 4번째 인덱스 '직전까지' 추출하도록
console.log(arr_1);
console.log(arr_2);
var str_1 = 'apple and banana';
var str_2 = str_1.substr(3, 6); //3번째 인덱스부터 6개 잘라주세요
console.log(str_1);
console.log(str_2);
var str = 'abc, def, 123, 456';
var arr_1 = str.split(',');
console.log(arr_1);
var arr_2 = str.split(', ',3);
console.log(arr_2);
var arr = [2, 10, 3, 5, 4]
arr.sort((a, b)=> a - b)
console.log(arr)
var arr = [2, 10, 3, 5, 4]
arr.sort((a, b)=> b - a)
console.log(arr)
let arr = ['cat', 'butter', 'apple', 'naver', 'samsung']
arr.sort((a, b) => a.localeCompare(b));
console.log(arr);
let arr = ['cat', 'butter', 'apple', 'naver', 'samsung']
arr.sort((a, b) => b.localeCompare(a));
console.log(arr);
var arr = [];
var num = 100;
for( i = 1 ; i <= Math.sqrt(num) ; i++ ) { //Math.sqrt(num)은 num의 제곱근을 반환해준다.
if(num % i === 0) {
arr.push(i);
if(num / i != i){
arr.push(num / i);
}
}
}
arr.sort((a, b)=> a - b);
console.log(arr);
let set = new Set();
set.add(1);
set.delete(1);
만약 존재하지 않는 값을 삭제하려고 했다면 false를 리턴한다.
정상적으로 삭제했을 시 true를 리턴한다.
console.log(set.size);
let set = new Set([5, 4, 3, 2, 1]); //초기값 지정. 반드시 []안에 값을 넣을 것!!!
set.forEach((value) => {
console.log('value: ' + value);
});
let set = new Set([5, 4, 3, 2, 1]);
if(set.has(5)){
console.log('5는 존재합니다~');
}
else {
console.log('5 없어요~');
}
if(set.has(9)){
console.log('9는 존재합니다~');
}
else {
console.log('9 없어요~');
}
set.has()의 시간복잡도는 무려 O(1)이다!!!
자주 이용하도록 하자~
var str = 'AbCdEfG123';
console.log(str.toLowerCase());
var str = 'AbCdEfG123';
console.log(str.toUpperCase());
var str = '안녕하세요 안녕 안녕';
var result = str.replace('안', '뿅'); // '안'을 '뿅'으로 바꿀래요
console.log(result);
맨 처음의 '안' 문자만 바뀐 모습...
var str = '안녕하세요 안녕 안녕';
var result = str.replace(/안/gi, '뿅'); // '안'을 '뿅'으로 바꿀래요
console.log(result);
var str = '안녕hello하세요 안hi녕 안hi녕';
var result = str.replace(/[a-zA-Z]/gi, ''); // a~z와 A~Z를 ''으로 바꿀래요
console.log(result);
var str = '안녕!!@@##$$%%^^&&안녕';
var result = str.replace(/[@#%^&]/gi, ''); // 특수문자 @#%^& 들을 ''으로 바꿀래요
console.log(result);
let num = 45;
console.log('10진수에서 2진수로 변환: ', num.toString(2));
console.log('10진수에서 3진수로 변환: ', num.toString(3));
let num = 1200;
console.log('3진수에서 10진수로 변환: ', parseInt(num, 3));
console.log('4진수에서 10진수로 변환: ', parseInt(num, 4));
let arr = [1, 2, 3, 4, 5]
let sum = arr.reduce((acc, cur, idx) => {
console.log('총합: ', acc);
console.log('현재 값: ', cur);
console.log('인덱스: ', idx);
console.log('-----------------');
return acc +cur;
})
console.log(sum);
배열의 모든 요소를 더해주는 모습!
간단하게 원리를 설명하자면, reduce안에 들어가는 함수에서 리턴한 값이 누적값이 되는것이다.
그래서 이전까지 누적된 값 + 현재 값을 계속 반복하기 때문에 배열의 합을 구할 수 있는것이다!
let arr = [1, 2, 3, 4, 5]
let sum = arr.reduce((acc, cur, idx) => {
console.log('총합: ', acc);
console.log('현재 값: ', cur);
console.log('인덱스: ', idx);
console.log('-----------------');
return acc +cur;
}, 100) //여기에 초기값 추가
console.log(sum);
초기값을 정해준것과 정해주지 않은것의 인덱스차이점을 꼭 확인하자
console.log('A'.charCodeAt());
console.log('a'.charCodeAt());
console.log('z'.charCodeAt());
console.log(String.fromCharCode(65));
console.log(String.fromCharCode(97));
console.log(String.fromCharCode(122));
let n = 1000;
let arr = Array(n + 1).fill(true);
arr[0] = false;
arr[1] = false;
for(let i = 2 ; i * i < n ; i++) {
if(arr[i]){
for(let k = i * i ; k <= n ; k += i){
arr[k] = false;
}
}
}
console.log('1부터 n까지 소수의 개수: ', arr.filter(a => a).length);
var str = '123';
console.log(str + 300);
console.log((+str) + 300);
문자열 앞에 +를 붙이면 숫자로 계산이 가능하다!
var arr_1 = [1, 5, 7, 2, 4, 9,];
var arr_2 = arr_1.sort((a, b) => a - b); //전개연산자 없고
console.log(arr_1);
console.log(arr_2);
-----------------------------------------------
var arr_1 = [1, 5, 7, 2, 4, 9,];
var arr_2 = [...arr_1].sort((a, b) => a - b); //전개연산자 있고
console.log(arr_1);
console.log(arr_2);
원본까지 바꿔버리는 모습
원본이 유지되는 모습..!
console.log(2 ** 5);
let arr_1 = ['1', '2', '3', '', '', '6'];
let arr_2 = arr_1.filter(a => a);
console.log(arr_1);
console.log(arr_2);
빈칸만 사라지는 모습!
set객체에는 중복된 값이 저장될 수 없다!
var arr_1 = ['1', '2', '3', '4', '5', '2', '3', '5'];
var arr_2 = [...new Set(arr_1)];
console.log(arr_1);
console.log(arr_2);