채택완료

자바스크립트 문제입니다.

2019-03-04 (월) 13:45:28 1,998

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개 / 댓글 1개

채택된 답변
+20 포인트

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

Copy
const column = ['a', 'b', 'c', 'd'];
    const values = [[1, 2, 3, 4], [5, 6, 7, 8]];

 

    var result = [];
    values.forEach((arr) => {

        var obj = {};
        arr.forEach((value, idx) => {
            obj[column[idx]] = value;
        });
        result.push(obj);
    });
    console.log(result);

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

Copy
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);

답변에 대한 댓글 1개

감사합니다
제 방법 보다 1000배 좋으십니다.
^^;;

제 소스 올릴까 했는데
너무 부끄러워서
패스 할게요^^:;
2019-03-04 (월) 14:07:39

해결 했는데

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

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