我不確定這是否是正確的方法,但我很好奇它是否可以完成。我有一個對象,我需要創建一個數組,鍵是項目,值id是它在數組中重複的次數。使用擴展運算符在使用映射時擴展數組
const arrayInstructions = {
'm': 5,
's': 5,
'p': 5
}
這將使['m','m','m','m','m','s','s' ... ]
這是工作方法:
var array = []
Object.keys(arrayInstructions).forEach(function (agenda) {
array = array.concat(_.fill(Array(arrayInstructions[agenda]), agenda))
})
能把它以這種方式來完成:
var deck = Object.keys(streamDeck).map(function (agenda) {
var partial = _.fill(Array(streamDeck[agenda]), agenda)
return ...partial // I know this is wrong
})
不,不能。你正在尋找'concatMap'(JS沒有)。 – Bergi
考慮Object.keys(obj).reduce((s,k)=> s + k.repeat(obj [k]),'').split('')'。它無用的字符串連接,但它很短。 – Oriol