• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 원하는 단어가들어간 것들만 꺼내쓰는법? 질문입니다.

원하는 단어가들어간 것들만 꺼내쓰는법? 질문입니다.

8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 글쓴이
  • #54035

    박지오
    참가자
    https://api.upbit.com/v1/market/all 
    이 api에서 KRW가 들어가는 것들만 가져오고싶습니다.
    찾아보니 indexOf를 쓰라는거같은데 항상-1이나오는 상황입니다. 
    혹시indexOf를 쓰는게 아닌가요? 
    그럼 방법이어떻게될까요. 힌트부탁드립니다! 
    
    그리고 한가지더 
    Promise.all로 axios url을 두개 가져와서 forEach반복문을 돌렸을때 데이터 갯수만큼이 아닌 axios갯수 (두개)만큼만 나오는데 이건 왜그런걸까요?
    #54045

    codingapple
    키 마스터
    반복문 돌리면서 object자료의 value값에 KRW글자 들어있냐고 indexOf 같은거 쓰면 됩니다 
    axios 결과를 모두 array자료에 합쳐줘서 그런가봅니다
    #54060

    박지오
    참가자
    let url1 = 'https://api.upbit.com/v1/market/all';
    let url2 =
    'https://api.upbit.com/v1/ticker?markets=KRW-BTC%2CKRW-ETH%2CBTC-ETH%2CBTC-GO';
    const coinList = axios.get(url1);
    const coinPrice = axios.get(url2);
    Promise.all([coinList, coinPrice]).then((response) => {
    console.log(response[1].data);
    console.log(response[1].data);
    response.forEach((a, i) => {
    const template = document
     .getElementById('body-container')
     .insertAdjacentHTML(
    'beforebegin',
    ` <tr>
     <td>${response[0].data[i].korean_name}</td>
     <td>${response[1].data[i].trade_price}</td>
     <td>${response[1].data[i].trade_volume}</td>
     <td>${response[1].data[i].acc_trade_price}</td>
     </tr>`
     );
     });
     });
    
    axios결과 array자료에 합쳐진걸 어떻게 나눌까요 ㅠㅠ
    #54102

    codingapple
    키 마스터
    response[0].data.forEach()  
    response[1].data.forEach() 
    둘 중 하나 쓰면 반복문 돌아갈듯요
    #54231

    박지오
    참가자
    선생님 추가질문드립니다.
    굵은 글씨로표시한Promise.all안의 let krw = '';  변수를 
    Promise.all 바깥의 
    let url2 변수의 krw에 적용시켜야하는데 어케해야할까요.
    let url1 = 'https://api.upbit.com/v1/market/all';
    let url2 = 'https://api.upbit.com/v1/ticker?markets=' + krw;
    let coinList = axios.get(url1);
    let coinPrice = axios.get(url2);
    Promise.all([coinList, coinPrice])
     .then((response) => {
    for (let i = 0; i < response[1].data.length; i++) {
    if (response[0].data[i].market.indexOf('KRW') > -1) {
    let krw = '';
    let koreanName = [];
    krw += response[0].data[i].market + ',';
    koreanName.push(
    response[0].data[i].korean_name.replace('코인', '')
     );
    krw = krw.substring(0, krw.length - 1);
    console.log(koreanName);
    console.log(krw);
    const template = document
     .getElementById('body-container')
     .insertAdjacentHTML(
    'beforebegin',
    ` <tr>
     <td>${response[0].data[i].korean_name}</td>
     <td>${response[1].data[i].trade_price}</td>
     <td>${response[1].data[i].trade_volume}</td>
     <td>${response[1].data[i].acc_trade_price}</td>
     </tr>`
     );
     }
     }
     })
     .catch((err) => {
    console.log(err);
     });
     
    #54246

    codingapple
    키 마스터
    let krw; 를 바깥에 만들고 
    if문 안에선 krw = ''; 이러면 됩니다
    #54261

    박지오
    참가자
    선생님 말씀대로 해봤는데 안되네요.. 
    console.log 찍어보니undefined가 뜹니다.
    if문안의 데이터가 안가져와지는거 같아요..
    한번만 더봐주시면 감사하겠습니다.
    #54318

    codingapple
    키 마스터
    그렇다면 krw 변수에 저장하는 값들부터 잘 나오는지 출력해보면 원인을 찾을 수 있습니다
8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠