我想知道如何在更清洁和最佳的方式做到这一点:的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