애용
617
2020-12-14 11:22:02
5
275

람다식 질문있습니다!


안녕하세요 하이차트를 만드는중에 data를 for문으로 집어넣어야 해서 okky에 질문을 하여 원하는대로 차트가 출력은 됩니다. data를 람다식으로 집어넣는것 같은데 람다식이 잘 이해가되지 않아서 질문드립니다.


var label = [];
        var cnt=[];
        <c:forEach items="${dataList}" var="item">
        	label.push('${item.LABEL}');
        	cnt.push(Number('${item.CNT}'));
        </c:forEach>
 series: [{
                colorByPoint: true,
                data: label.map((name, i) => ({name, y:cnt[i]}))
            }]

저렇게 데이터가 들어가는부분이 제대로 이해가 되질않아서 풀이좀 해주시면 감사하겠습니다 ㅠㅠ

0
  • 답변 5

  • Dierslair
    4k
    2020-12-14 11:29:50 작성 2020-12-14 11:30:23 수정됨

    이렇게요?

    label.map((name, i) => ({ name, y: cnt[i] }));
    label.map(function(name, i) { // ES5 equivalent
      return {
        name: name,
        y: cnt[i]
      };
    });


  • 애용
    617
    2020-12-14 11:49:01 작성 2020-12-14 11:49:48 수정됨

    답변감사드립니다

    람다식으로 표현했을때 i는 어디서 가져오는건가요..?

    ie에서는 람다식이안돼서 말씀해주신대로 입력했더니 차트가 출력이 안돼서요.. 

  • Dierslair
    4k
    2020-12-14 13:08:39 작성 2020-12-14 13:09:52 수정됨

    애용

    ie에서는 map 함수가 없을거에요. 폴리필하시거나 for 반복문으로 사용하셔야 합니다.


    data: (function() {
      var result = [];
      for (var i = 0; i < label.length; i++) {
        var element = label[i];
        result.push({
          name: element.name,
          y: i
        });
      }
      return result;
    })();



  • 애용
    617
    2020-12-14 13:20:20

    John Suhr 

    다시한번 답변달아주셔서 감사합니다.

    말씀해주신대로 데이터를 집어넣으면 크롬에서도 차트가 안나와서요.. 죄송합니다

    series: [{
                    colorByPoint: true,
                    data: [{
                        name: label[0],
                        y: cnt[0]
                    }, {
                        name: label[1],
                        y: cnt[1]
                    }, {
                        name: label[2],
                        y: cnt[2]
                    }, {
                        name: label[3],
                        y: cnt[3]
                    }, {
                        name: label[4],
                        y: cnt[4]
                    }]
                }]

    제가원래는 데이터를 이런식으로 집어넣고있었는데요. 위의 코드로 진행하면 데이터가 없을경우에는 차트가 꼬여서 for문으로 변경하려고 이것저것 해보았지만 도무지 해결이 되질않아서요.. 어떻게 해야할지 도움좀 더주신다면 감사하겠습니다.ㅠㅠ

  • 애용
    617
    2020-12-14 13:36:19

    John Suhr

    ES5로 변경해주신거 다시해서 에러코드를 확인해보니 ; 의 오류여서 수정했더니 크롬에서도 잘나오고 ie에서도 잘나오네요!! 감사합니다 ㅠㅠ 


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