Pino99
40
2020-12-28 19:29:04 작성 2020-12-28 19:30:11 수정됨
2
241

Javascript, function 안에서 만든 값을 밖으로 가져올 수 있나요?


기존에 BFastlist, lunchlist, dinnerlist라는 배열을 만들어 논 상태에서 

사용자가 드롭다운에서 값을 고르면 (혹은 고르고 나서 실행 버튼을 누를 때)

값에 따라 각 리스트를 timelist라는 이름으로 새롭게 정의하고 싶습니다.

아침식사를 고르면 tiemlist = BFlist, 점심이면 timelist = lunchlist가 되는 것이죠!

그런데

timelist=[];
for (var i = 0; i < BFlist.length; i++) {
if (timeselect.value == 'BF') {
timelist.push(BFlist[i]);
} }
이런 방식으로 접근하면 console에서 timeselect.value =='BF'가 true 값이 나와도
timelist값을 출력하면 [] 값만 나옵니다.

그래서 선택시 작동하도록 funtion(select_obj) 안에 넣거나

버튼을 눌렀을 때 실행하게 function(Button) 안에 함수를 넣었더니

timelist 값 자체가 undefined로 나옵니다.

나중에 timelist 값을 가지고 계산도 해야하는데...

여기서 막히니까 너무 답답하네요 ㅠㅠ 가르침 주시면 달게 받겠습니다
0
  • 답변 2

  • 킁킁탐정
    844
    2020-12-28 19:51:51 작성 2020-12-28 19:52:52 수정됨

    이전 질문과 동일한 내용이라, 간단하고 이해하기 쉽게 최대한 풀어서 단순한 자료구조를 사용한 방법으로 구현하면 다음과 같습니다. 참고용도로 사용하시기 바랍니다.


    <select id="meal">
    <option>-- MEAL --</option>
    <option value="breakfast">Breakfast</option>
    <option value="lunch">Lunch</option>
    <option value="dinner">Dinner</option>
    </select>

    <div id="menus"></div>

    <script>
    var breakfastMenus = ["계란후라이", "쌀국수", "머핀"];
    var lunchMenus = ["치킨", "갈비탕", "순대국"];
    var dinnerMenus = ["감자칩", "치즈", "호빵"];

    var currentSelectedMealMenus = [];

    var meal = document.getElementById("meal");
    var menus = document.getElementById("menus");

    meal.addEventListener("change", function (event) {
    var value = event.target.value;
    if (value == "breakfast") {
    currentSelectedMealMenus = breakfastMenus;
    }
    if (value == "lunch") {
    currentSelectedMealMenus = lunchMenus;
    }
    if (value == "dinner") {
    currentSelectedMealMenus = dinnerMenus;
    }

    menus.innerHTML = currentSelectedMealMenus.join(", ");
    console.log(currentSelectedMealMenus);
    });
    </script>



  • Pino99
    40
    2020-12-28 20:29:04

    허허 어제 쓴 질문까지 기억해주시고 코드도 직접 짜주시고 ...

    너무 감사합니다. 열심히 해보겠습니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.