zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (763)
    • 개발이 좋아서 (381)
      • SAP가 좋아서 (3)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (168)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (90)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo

To Infinity And Beyond

노력이 좋아서

<step38>'js_arguments, 배열메소드, 객체메소드'

2022. 5. 12. 12:44

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

    티스토리툴바