테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 문제입니다. 채택완료

선구자 6년 전 조회 1,818

1. 배열이 2개가 있습니다.

 

const column = [a,b,c,d];

const values = [[1,2,3,4], [1,2,3,4].....]

 

이것을

 

values로 루프를 돌면서

원하는 결과는 이렇습니다.

[

    { a: 1,

      b:2,

      c:3,

     d:4

   },

    { a: 1,

      b:2,

      c:3,

     d:4

   },

...

]]

 

 

제가 써본 함수는

for 문 안에

objectKey() 등입니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

직관적으로 이렇게 해봤습니다. 좀 더 스마트하게 하는 방법은.. 음;;;

</p>

<p>    const column = ['a', 'b', 'c', 'd'];

    const values = [[1, 2, 3, 4], [5, 6, 7, 8]];</p>

<p> </p>

<p>    var result = [];

    values.forEach((arr) => {</p>

<p>        var obj = {};

        arr.forEach((value, idx) => {

            obj[column[idx]] = value;

        });

        result.push(obj);

    });

    console.log(result);</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

약간 다른 방법으로도 해봤습니다. 퀴즈같아서 ㅎㅎ

</p>

<p>    const column = ['a', 'b', 'c', 'd'];

    const values = [[1, 2, 3, 4], [5, 6, 7, 8]];

    var output = values.map(arr => {

        return arr.reduce((obj, v, vidx) => {

            obj[column[vidx]] = v;

            return obj;

        }, {});

    });

    console.log(output);</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

선구자
6년 전
감사합니다
제 방법 보다 1000배 좋으십니다.
^^;;

제 소스 올릴까 했는데
너무 부끄러워서
패스 할게요^^:;

댓글을 작성하려면 로그인이 필요합니다.

해결 했는데

다른 고수님들의 해결 방법도 궁금합니다.

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인