selli
133
2020-12-15 21:28:07
4
217

자바스크립트 배열객체 조작하는거 도와주세요 ㅠㅠ


어찌어찌 구글링 하고 이렇게 저렇게 막 짜서 아래와 같은 데이터가 나왔습니다..

var test = [
{seq: "1", code: "pid", text: "환자등록번호", value: "11"},
{seq: "1", code: "pid", text: "환자등록번호", value: "22"},
{seq: "1", code: "pid", text: "환자등록번호", value: "33"},
{seq: "2", code: "chosNo", text: "내원번호", value: "aa"},
{seq: "2", code: "chosNo", text: "내원번호", value: "bb"},
{seq: "2", code: "chosNo", text: "내원번호", value: "cc"},
{seq: "3", code: "wrtnDy", text: "작성일자", value: "20200101"},
{seq: "3", code: "wrtnDy", text: "작성일자", value: "20200202"},
{seq: "3", code: "wrtnDy", text: "작성일자", value: "20200303"},
{seq: "4", code: "hght", text: "신장", value: 163.1},
{seq: "4", code: "hght", text: "신장", value: 163.2},
{seq: "4", code: "hght", text: "신장", value: 163.3},
{seq: "5", code: "bdwt", text: "체중", value: 66},
{seq: "5", code: "bdwt", text: "체중", value: 77},
{seq: "5", code: "bdwt", text: "체중", value: 88},
{seq: "6", code: "bmi", text: "BMI", value: 21.5},
{seq: "6", code: "bmi", text: "BMI", value: 31.5},
{seq: "6", code: "bmi", text: "BMI", value: 41.5}
];


근데 for문을 돌려서 value값만 아래처럼 

11

aa

20200101

163.1

66

21.5


22

bb

20200202

163.2

77

31.5

.....

이런 순서 각 값을 가져오려면 어떻게 해야하나요? ... 자바스크립트 배운지 얼마안된 왕초보라 도움좀 제발 부탁드립니다..ㅠㅠ

0
  • 답변 4

  • Frudy
    7k
    2020-12-15 22:16:40
    function helloworld(list) {
    return list.map(item => item.value);
    }

    console.log(helloworld(test));


    원하시는 결과값이 이런 배열형태가 맞나요? value 프로퍼티에 있는거 다 꺼냈어요.


    ㅡㅡㅡㅡ


    function helloworld(list) {
    var result = [];
    var listLength = list.length;

    for (var i = 0; i < listLength; i++) {
    result.push(list[i].value);
    }

    return result;
    }

    이건 for문으로 짜본거에요.

    그리고 var는 권장되지않습니다.


    특별한 이유가없다면, 첫번째 방법처럼 ES6문법을 익혀보시는게 좋습니다~

  • jslovers
    2k
    2020-12-15 22:29:23


    Object.values(((key = 'seq') => test.reduce((rv, x) => {
        (rv[x[key]] = rv[x[key]] || []).push(x.value);
        return rv;
    }, {}))()).reduce((a, b) => a.map((v,i) => v + ', ' + b[i]));
    
    //(3) ["11, aa, 20200101, 163.1, 66, 21.5", "22, bb, 20200202, 163.2, 77, 31.5", "33, cc, 20200303, 163.3, 88, 41.5"]


  • selli
    133
    2020-12-15 22:59:53

    jslovers 님 혹시 저 코드 실행해려는데  console.log()에 어떻게 넣어주어야 저 결과값을 볼 수 있나요??..??


  • mr.hongs
    240
    2020-12-15 23:54:04

    1. 첫번째 방법
    for( var key of test ) {

     console.log( key["value"] )

    }


    2. 두번째 방법
    for( var key in test ) {
        console.log( test[key]["value"] )
    }
  • 로그인을 하시면 답변을 등록할 수 있습니다.