タイトル通りなのですが、配列のundefinedをゼロで埋めるため以下のコードを実行したのですが思い通りの動きをしてくれません。

[0,1,2,3,,,,,,9].map(function(v){return v||0;}) // -> [0,1,2,3,,,,,,9]

scores.forEach()で何回ループするか確認してみたところ、5回しかループしませんでした。
kockoutjsのdata-bind内部に書くコードなので、できるだけ1行で済ませたいと思っています。

どうすればよいでしょうか。