1) arguments.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//arguments는 인수 전체를 얻어내기 위한 객체
//인덱스를 사용해 인수에 접근가능
//유사배열 객체 (length)
function myFunc(num1, num2){
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
console.log(arguments.length);
}
myFunc(10,20,30,40);
//나머지 매개변수 ...
//함수 정의 방법과 상관없이 함수에 넘겨주는 인수의 개수에 제약을 없앰
function sum(num1, num2){
return num1 + num2;
}
let result = sum(1,2,3,4,5);
console.log(result);
function sumAll(...numAll){
let sum = 0;
for(i=0; i<numAll.length; i++){
sum = sum + numAll[i];
}
return sum;
// numAll.forEach(num=>{
// sum=sum+num;
// return sum;
// })
}
let result2 = sumAll(1,2,3,4,5);
console.log(result2);
function showName(성,이름,...스킬){
console.log(성);
console.log(이름);
스킬.forEach(기술 => console.log(기술));
}
showName('손','민영','html','css','javascript','php');
showName('김','그린','java','jsp','mysql');
</script>
</body>
</html>
2) arrcopy.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let arr = [1,2,3];
let arr2 = [];
// arr.forEach((val,index) => {
// arr2.push(val);
// })
arr2 = arr2.concat(arr); //배열 합치기
let arr3 = [...arr];
console.log(arr);
console.log(arr2);
arr[0] = 10;
console.log(arr);
console.log(arr2);
let obj = {
name: 'green',
age: 30,
}
let objCopy = {...obj};
let objCopy2 = Object.assign({},obj); //{}:목표대상
console.log(obj===objCopy2);
obj.name = 'aaa';
console.log(obj);
console.log(objCopy);
let target = {
a: 10,
b: 20,
}
let source = {
b: 50,
c: 60,
d: 70,
}
// Object.assign(target, source); //덮어씌우기
target = {...target,...source}; //스프레드 구문사용
console.log(target);
</script>
</body>
</html>
3) stringMethod.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let str = 'green';
console.log(str);
console.log(str.length);
for(let i=0; i<str.length; i++){
console.log(str[i]);
}
//※indexOf() 문자열.indexOf(찾을값)
console.log(str.indexOf('e')); //먼저 나오는 값 인덱스 반환
//※include() 문자열.include(찾을값)
console.log(str.includes('g'));
//문자열 추출
//slice() substring() substr() -> 새로운 문자열을 반환
//let str2 = "안녕하세요"
//문자열.slice(start, end) // end 앞 인덱스까지 추출
let str2 = "안녕하세요";
console.log(str2.slice(0,2));
console.log(str2.substring(0,2));
console.log(str2.substr(0,2));
//문자열을 배열로 반환
//※split(구분자,?개수)
let str3 = '오늘은 즐거운 목요일';
console.log(str3.split(" ",2));
//문자열 결합
//※문자열.concat('결합할 문자열') -> 합쳐진 문자열 반환
console.log(str3.concat(' 곧 점심시간'));
//대소문자 변환
//toUpperCase() -> 대문자로 변환
//toLowerCase() -> 소문자로 변환
let str4 = 'JavaScript';
console.log(str4.toLocaleUpperCase());
console.log(str4.toLocaleLowerCase());
//문자열 양끝에 공백을 제거
//trim()
let str5 = ' 안녕하세요 ';
console.log(str5.trim());
//문자열로 변환
//※변수.toString(진법)
let number = 56;
console.log(number.toString(2));
//해당 문자열을 숫자만큼 반복해서 새로운 문자를 반환
//문자열.repeat(n)
let str6 = '안녕';
console.log(str6.repeat(2));
</script>
</body>
</html>
4) ex01.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
function solution(s){
let answer = 0;
// answer = parseInt(s);
answer = Number(s);
console.log(typeof(answer));
return answer;
}
console.log(solution('-12345'));
//가운데 글자 가져오기
function solution2(s){
let answer = '';
// if(s.length%2===1){
// answer = s.slice(Math.floor(s.length/2),Math.ceil(s.length/2));
// }else {
// answer = s.slice((s.length/2)-1,(s.length/2)+1);
// }
answer = s.length%2===0? s.slice(s.length/2-1,s.length/2+1) : s.slice(s.length/2,s.length/2+1);
return answer;
}
console.log(solution2('abcde'));
console.log(solution2('qwer'));
</script>
</body>
</html>
5) 05array_method3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 01원본배열을 변경하는 메소드
// push() / pop() / shift() / unshift()
// splice() / reverse()
let dogs = ['콩이','흰둥이','크림','구름','검둥이'];
dogs[dogs.length] = '사랑이';
dogs.push('나추가');
dogs.unshift('앞에추가');
dogs.shift();
dogs.pop();
console.log(dogs);
dogs.reverse();
console.log(dogs);
//splice() 내가 원하는 위치의 값부터 제거 가능, 추가도 가능
//splice(start, num, '추가하는값')
dogs.splice(1,2,'누렁이');
console.log(dogs);
// 02원본배열을 변경하지않고 참조만 하는 메소드
//join() 문자열로 반환
//slice(start,end) 배열의 일부분을 배열로 반환
//concat() 배열을 합쳐서 새로운 배열을 반환
//toString() 문자열로 반환
//indexOf() 전달받은 값과 동일한 값이 배열요소에 있으면 그 요소의 인덱스 반환, 없으면 -1을 반환
//includes() 전달받은 값과 동일한 값이 배열요소에 있으면 true, 없으면 false 반환
let arr = ['hi','안녕','그린','목요일'];
let str = arr.join('❤');
console.log(arr);
console.log(str);
let nArr = arr.slice(1,2);
console.log(nArr);
let nArr2 = arr.concat([1,2,3]);
let nArr3 = [...arr,1,2,3]; //스프레드 구문사용
console.log(nArr2);
console.log(nArr3);
let str2 = arr.toString();
console.log(str2);
// 03원본배열을 반복적으로 참조하는 메소드
//forEach()
//map()
//filter()
//reduce()
//some()
//find()
//every()
let numArr = [10,20,30,40,50];
for(i=0; i<numArr.length; i++){
console.log(numArr[i]);
}
for(let i of numArr){
console.log(i);
}
let newNumArr = [];
numArr.forEach((val, index, arr)=>{
newNumArr.push(val);
console.log(val,index);
})
console.log(newNumArr);
let newNumArr2 = numArr.map(val=> val+5);
console.log(newNumArr2);
let newNumArr3 = numArr.filter(a=> a>20);
console.log(newNumArr3);
let booleanVal = numArr.some(val=> val>30);
console.log(booleanVal);
// 배열.forEach((각 배열요소의 값, 각 배열요소의 인덱스, 원본배열)=>{})
// 배열.reduce((누적값, 현재값, 인덱스, 원본배열)=>{},초기값)
let numArr2 = [1,2,3,4,5,6];
let sum = 0;
numArr2.forEach(val=>{
sum = sum + val;
});
let result = sum;
let result2 = numArr2.reduce((pre, cur)=> pre + cur);
console.log(result2);
let result3 = numArr.reduce((pre, cur)=>{
pre.push(cur+5);
return pre;
},[]);
</script>
</body>
</html>
6) ex02.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//나누어 떨어지는 숫자 배열
function solution(a,d){
let answer = [];
a.forEach((val)=>{
if(val%d===0){
answer.push(val);
answer = answer.filter(val => val>=1);
return answer;
}else if(val%d!=0) {
answer.push(-1);
answer = answer.slice(0,1);
return answer;
}
});
console.log(answer);
}
let arr = [5,9,7,10];
let divisor = 5;
let arr2 = [2,36,1,3];
let divisor2 = 1;
let arr3 = [3,2,6];
let divisor3 = 10;
solution(arr,divisor);
solution(arr2,divisor2);
solution(arr3,divisor3);
</script>
</body>
</html>
7) ex02_teach.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function solution(arr, divisor){
let answer = [];
//arr배열 요소중 divisor로 나누었을때 나머지가 0이 되는 요소는
//answer에 넣기
//1)answer.push()
arr.forEach(val=>{
if(val % divisor == 0) answer.push(val);
})
//2)filter를 사용하여 해당 배열을 answer에 할당
answer = arr.filter(val=> val % divisor === 0);
answer = answer.length == 0? [-1] : answer;
return answer;
}
console.log(solution([5,9,7,10],5));
</script>
</body>
</html>
'노력이 좋아서' 카테고리의 다른 글
<step40>'js_event,scroll' (0) | 2022.05.16 |
---|---|
<step39>'js_DOM' (0) | 2022.05.13 |
<step37>'js_동기 비동기' (0) | 2022.05.11 |
<step36>'야구게임_팀과제' (0) | 2022.05.10 |
<step36>'js_메소드, 동기 비동기' (0) | 2022.05.10 |