我想知道如何在更清潔和最佳的方式做到這一點:的Javascript,重複的對象鍵N倍,爲N其值
我有具有以下結構的對象:
{
"125": 2,
"439": 3,
"560": 1,
"999": 2,
...
}
我想創建一個重複每個鍵的平面數組,它的值表示的次數。和轉換鍵(字符串)爲整數的獎勵點。在這個例子中,結果數組應該是:
[ 125, 125, 439, 439, 439, 560, 999, 999 ]
我試過了幾種方法,但他們都看起來過度設計。肯定有一個更簡單的方法。 這是我和下劃線了(並返回一個字符串數組,也不是整數):
_.compact(_.flatten(_.map(files, function(num, id) {
return new Array(num+1).join('$'+id).split('$')
})))
我知道有很多方法可以做到這一點。我只想要一個乾淨而快捷的方式。作爲一個紅寶石開發商也可能是一樣簡單:提前
> files = {"125" => 2, "439" => 3, "560" => 1, "999" => 2}
=> {"125"=>2, "439"=>3, "560"=>1, "999"=>2}
> files.map {|key, value| [key.to_i] * value}.flatten
=> [125, 125, 439, 439, 439, 560, 999, 999]
感謝。
正確的,只是他想的整數,所以你應該添加值,之前使用'parseInt函數()'或類似的東西陣列。 – jeff 2012-08-10 17:44:04