2017-11-08 1 views
-3

것을이 내 배열 출력 변환 할 :, 내가 객체로, 여기 내 아래 코드

[ 33, [ 1, 2 ] ] 

나는 그것을 변환 할뿐만 :

[{contactId:33,groupId:1},{contactId:33,groupId:2}] 

그것을 할 수 있습니까? foreach 루프 또는 map 함수가 underscore.js에 있습니까? 가능한 경우 어떻게해야합니까? 도와주세요!

+0

원하는 배열에 어떻게 도착하는지 완전히 명확하지 않습니다. 초기 배열에 요소가 더 있으면 어떻게 될까요? – Phil

+0

그냥 정적 방법으로 말해, 난 초보자입니다 :) –

+1

정적? 'varArray [0], groupId : oldArr [1] [1]}]' – Phil

답변

3
var temp=[]; 
var firstElement=""; 
a=[ 33, [ 1, 2 ] ]; 
a.map(function(d,i){ 
    if(i==0){ 
    firstElement=d; 
    }else{ 
    d.map(function(d1){ 
    var tempObj={}; 
    tempObj["contactId"]=firstElement; 
    tempObj["groupId"]=d1; 
    temp.push(tempObj); 
    }); 
    } 
}); 
console.log(temp); 
+0

정말 고마워요. 당신은 내 날을 구합니다! :) –

+0

당신을 환영합니다 !!!! –

3

이 배열 array이 형식 항상 가정 "각 짝수 항목 접촉 ID 인 항목, 짝수 및 홀수 - 인덱스 항목 그룹 ID의 배열" 작동해야합니다 :

array.reduce((prev, contactId, i, arr) => (
    Array.isArray(contactID) // check if it's a contact ID, or group IDs 
     ? prev // skip the group IDs 
     : prev.concat(arr[i + 1].map(groupId => ({ contactId, groupId })); 
), []); 
+1

답변 해 주셔서 감사합니다 :) –