🤟
Vanilla-JS
  • TRIPLE-PLUS Adout
  • Babel.JS
  • 01.Vanilla-JS
    • 01. Hello JavaScript
    • 02. 변수
      • 02-1.지키면 좋은 룰(더 좋은 스타일을 위해서)
      • 02-2.숫자형꿀팁(수식 줄이기)
    • 03. 연산자
    • 04. 조건문
    • 05. 함수
      • this의 의미 6개 총정리
      • event listener와 constructor
      • 05-1. return:돌려주다
      • 05-2. 형 변환 함수
      • 05-3. Arrow function
    • 06. 객체
    • 07. 배열
      • 07-1. 배열 안에 배열(2차 배열)
      • 07-2. 배열내장 함수(forEach)
      • 07-3. 배열내장 함수(sort)
      • 07-4. 배열내장 함수(map)
      • 07-5. 배열내장 함수(indexOf)
      • 07-6. 배열내장 함수(filter)
      • 07-7. 배열내장 함수(splice, slice)
      • 07-8. 배열내장 함수(shift, unshift, pop, push)
      • 07-9. 배열내장 함수(concat, join)
      • 07-10. 배열내장 함수(reduce)
      • 07-10. 배열내장 함수(reduce)2
    • 08. 반복문
    • 09. Class와 프로토타입
      • 09-1. 프로토타입과 클래스 - 생성자
      • 09-2. 프로토타입과 클래스 - 생성자 상속하기
      • Class & Constructor & Method
      • super
      • Static Method
      • Class Getter, Setter
      • Information Hiding
      • Inheritance & Polymorphism
      • Overriding
      • Abstract Class
      • Interface
    • Math 정리
    • String 정리
    • Array정리
    • Date 정리
      • D-day 구하기
  • 02.Vanilla-JS
    • 01.삼항연산자
    • 02. Truthy and Falsy
    • 03. 단축 평가 논리 계산법
    • 04. 함수 업그레이드 (default parameter/arguments)
    • 05. 조건문 더 스마트하게 쓰기
    • 06. 비구조화 할당 (구조분해) 문법
    • 07. spread 와 rest
      • 함수 파라미터에서의 rest(params)
      • 함수 인자에서의 spread
    • 08. 자바스크립트의 Scope 에 대한 이해
    • 09. Hoisting 이해하기
    • 10. Native DOM 선택
  • 03.비동기 처리
    • 01. fetch, then, catch[Promise] 이해하기
    • 02. 직접 만들어보는 Promise 객체
    • 03. async/await
    • 04. Promise all, Promise.race
  • REST API 제대로 알고 사용하기
    • mongodb Atlas
    • mongodb Atlas(DB)에 접근하려면
    • URL 이름짓기 관습
    • Database에 자료 저장하는 법
    • 게시물마다 번호를 달아 저장하기
    • 게시물마다 번호를 달아 저장하기2
  • JQUERY + SCRIPT 유용한 코드 정리
  • Practice(실습)
    • 카운터 만들기
    • reduce
    • 데이터 자료형 활용하기1
    • 데이터 자료형 활용하기2
    • 데이터 가지고 놀기(응용)1
    • 데이터 가지고 놀기(응용)2
    • REST API
    • 배열 만들기1
    • 배열 만들기2
    • 배열 만들기3
    • 비구조화 할당
    • rest + spread(응용)1
    • rest + spread(응용)2
    • rest + spread(응용)3
    • 반복문 내장함수(응용)1
    • 함수 가지고 놀기(응용)1
    • 서버와의 통신1
    • 서버와의 통신2
    • new Promise(응용)2
    • new Promise(응용)3
    • 자바스크립트 이벤트 위임 핵심 정리
Powered by GitBook
On this page

Was this helpful?

  1. Practice(실습)

데이터 가지고 놀기(응용)2

다음과 같은 데이터가 있다고 해봅시다. 이런것은 나중에 API문서 등등 데이터를 받오는 것이다 라고 생각해주세요.

// data.json
{
    "family": [
        {
            "global" :[
                {
                    "name": "Mirae Asset Daewoo",
                    "link": "https://english.miraeassetdaewoo.com/"
                },
                {
                    "name": "Mirae Asset Global Investments",
                    "link": "https://www.am.miraeasset.com/"
                }
            ]
        },
        {
            "korea": [
                {
                    "name": "Mirae Asset Daewoo",
                    "link": "https://www.miraeassetdaewoo.com/"
                },
                {
                    "name": "Mirae Asset Global Investments",
                    "link": "https://investments.miraeasset.com/main/index.do"
                },
                {
                    "name": "Mirae Asset Life Insurance",
                    "link": "http://life.miraeasset.com/"
                }
            ]
        },
        {
            "mongolia": [
                {
                    "name": "Mirae Asset Daewoo",
                    "link": "https://miraeassetsecurities.mn/"
                }
            ]
        }
    ]
}
<section class="main">
      <div class="inner">
         <ul class="hide global"></ul>
         <ul class="hide korea"></ul>
         <ul class="hide mongolia"></ul>
      </div>
</section>
  <script>
    $(function(){
        $('.top-inner').on('click','> a',function(){
            $('.top-inner').toggleClass('on')
            $('.hide').toggleClass('on');
        });
        var templateGroble;
        var template = function(data){
            if(!data.link){
                var template = '';
                template += '<li>';
                template += '<span>'+data.name+'</span>';
                template += '</li>';
                templateGroble = template;
            } else {
                var template = '';
                template += '<li>';
                template += '<a href="'+data.link+'">'+data.name+'</a>';
                template += '</li>';
                templateGroble = template;
            }
        };

        $.getJSON("/data/data.json", function(data){
        }).done(function(data){
            var copyData = $.extend(true, {}, data);  // 제이쿼리 메서드중 $.extend 데이터 깊은(true) 복사 기능

            var newArr = function(idx) {  //원본 데이터에 'id: 번호' 가 없어서 복사해온 데이에 'id: 번호'를 만들어서 넣어준 것.  1)
                return idx.map(function(data, index){
                    return {
                        id: index + 1,
                        ...data
                    } 
                });
            };

            newArr(copyData.family[0].global).forEach(function(el){
                if (el.id === 1){ el.link = "" }  // 위에서 'id:번호'를 만들어 주었으니, 이젠 특정 데이터에만 내가 하고 싶은 것을 할수 있다. 2)
                template(el);
                $('.global').append(templateGroble);
            });

            newArr(copyData.family[1].korea).forEach(function(el){
                template(el);
                $('.korea').append(templateGroble)
            });
            
            newArr(copyData.family[2].mongolia).forEach(function(el){
                template(el);
                $('.mongolia').append(templateGroble)
            });
        })
    });
</script>
Previous데이터 가지고 놀기(응용)1NextREST API

Last updated 5 years ago

Was this helpful?

3KB
json-test.zip
archive
data-json