关于js数组中删除所有的undefin并重新排列数组

arr[un,1,un,un,un,un,un,6,un,un]
for(var i=0;i<arr.length;i++)
{
if(arr[i]==undefine)
arr.splite(i,1);
}
这样写执行到最后还是会存在un,数组也并没有排列好我想要的最终结果就是arr[1,6]

var arr = [undefined,1,undefined,undefined,undefined,undefined,undefined,6,undefined,undefined];

for(var i = 0; i < arr.length; i++){

    if(arr[i] === undefined){

      arr.splice(i,1);
            i--;   // 删除后当前位置变了,回退
   }

}