2016-12-05 1 views
2

私は次のようなオブジェクトを持っています。Promise.mapオブジェクト

{ '6': { stream: { twitch: [Object] } }, 
    '7': { stream: { twitch: [Object] } }, 
    '8': { stream: { twitch: [Object] } }, 
    '9': { stream: { twitch: [Object] } }, 
    '10': { stream: { twitch: [Object] } }, 
    '11': { stream: { twitch: [Object] } } } 

私はそれを繰り返す必要があります。

return Promise.map(myObj, function(minute, minuteIndex) { 

したがって、基本的に分はデータを保持し、分インデックスはインデックスを保持する必要があります。

私はロダシでできますが、ブルーバードは何とかできません。

_.forEach(hour.minutes, function(minute, minuteIndex) { 

このコードは以前は動作していましたが、今は理解できません。

アイデア?あなたは配列にオブジェクトのキーをマッピングし、Promise.map()にそれを与えることができ

+0

なぜキーの番号を持つオブジェクトですか?代わりに配列を使うべきでしょうか? – Tomalak

+0

できません。これは、マングース上のデータの分ごとのstastisticsを保持する特別な構造です。私はそれらのインデックスが必要です。 – HuseyinUslu

+1

私は分かりません。配列にはキーとしての数値があります。数字をキーにしたい。論理的な結論:配列を使用します。 – Tomalak

答えて

4

function process(stats) { 
    var statsArray = Object.keys(stats).map(key => ({ 
     minute: key, minuteIndex: stats[key] 
    })); 
    return Promise.map(statsArray, item => { 
     // work with item.minute & item.minuteIndex 
    }); 
} 

使用法:

var twitchStats = { 
    '6': { stream: { twitch: [Object] } }, 
    '7': { stream: { twitch: [Object] } }, 
    '8': { stream: { twitch: [Object] } }, 
    '9': { stream: { twitch: [Object] } }, 
    '10': { stream: { twitch: [Object] } }, 
    '11': { stream: { twitch: [Object] } } 
}; 

process(twitchStats).then(result => { 
    // ... 
}); 
0

あなたはまた_.toPairsを使用して、オブジェクトを配列に変換することができ、 Promise.mapメソッドを使用できるはずです。

関連する問題