2017-09-28 2 views
0

나는 소수의 배열, 성 중 하나, 그리고 전자 메일 중 하나를 가지고있다. 배열의 각 인덱스에 대해 객체를 만들고 싶습니다. 여러 배열로 된 개체의 다차원 배열 만들기

firstnames[0], lastnames[0], emails[0]

{firstname: value, lastname: value, email: value}

될 것입니다있는 그 목적을 것입니다 및 배열에 그것을 던져. 그러나 현재 나는이 문제를 해결하는 방법을 찾는 데 어려움을 겪고 있습니다. 누군가를 원하면이 일을하는 깔끔한 방법을 생각해 내도록 도울 수 있습니다.

+0

은 당신의 배열은 각각'Array'의 각 인덱스는 인덱스에 의해 올바른 일치에 해당하는 방법으로 주문하고 있는가? –

+0

그 이상입니다. 데이터는 처음에는 CSV에서 가져옵니다.이 CSV는 다시 연결해야하는 DB의 특정 필드에 매핑되도록 재정렬해야합니다. 예를 들어 – chris

+0

과 같이 세 배열의 인덱스 0이 모두 포함됩니다. nnnnn의 답을 처리했습니다. 출력 예제는 다차원 배열이 아닙니다. 그것은 일련의 사물들입니다. 다차원 배열은'[[1,2], [3, 4]]'배열을 직접 포함하는 배열입니다. –

답변

4

루프가 필요합니다. 루프를 반복 할 때마다 현재 색인에 대한 각 배열의 값을 가져옵니다. 단순한 for 루프가 가장 이해하기 쉬울 것입니다.

다음은 array .map() method을 사용합니다. 즉, firstnames을 반복하고 .map()에 전달 된 함수에서 반환 된 값을 포함하는 새 배열을 만듭니다. 이것의 장점은 수동으로 출력 배열을 생성하고 객체를 푸시 할 필요가 없으며 .map()이 해당 부분을 수행하고 현재 범위에서 작업 변수를 작성하지 않아도된다는 것입니다.

모든 배열의 길이가 같다고 가정합니다.

var firstnames = ['Annie', 'Ben', 'Chris'] 
 
var lastnames = ['Andrews', 'Brown', 'Carmichael'] 
 
var emails = ['[email protected]', '[email protected]', '[email protected]'] 
 

 
var output = firstnames.map(function(v, i) { 
 
    return { 
 
    firstname: v, 
 
    lastname: lastnames[i], 
 
    email: emails[i] 
 
    } 
 
}) 
 

 
console.log(output)