2017-11-08 8 views
-3

であることをこれは私のアレー出力で変換したい:、私はオブジェクトとして、ここで私の次のコード

[ 33, [ 1, 2 ] ] 

私はそれを変換したいよう:

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

それは可能ですか? underscore.jsにforeachループまたはmap関数を使用していますか?可能であればどのように行うのですか?助けて!

+0

希望する配列にどのように到達したいかは完全にはわかりません。最初の配列にさらに多くの要素が含まれている場合はどうなりますか? – Phil

+0

静的なやり方で私に教えてください、私は初心者です:) –

+1

静的なえ?あなたの応答に感謝しています。{varImageName = oldArr [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

お返事ありがとうございます:) –

関連する問題