2015-07-10 56 views
0

我正在写一个保龄球游戏的程序,并且希望在数组中的每10个之后添加0。 e.g在特定字符后添加到数组中的元素javascript

arr=[1,2,4,10,9,2,10,1,1]; 

这就是我想要的:

newarr=[1,2,4,10,0,9,2,10,0,1,1]; 

我一直在努力:

for (i=0; i<arr.length; i++){ 
    if (arr[i]=10){ 
     newarr=arr.splice(i,0,0); 
    } 
} 
console.log(newarr); 

回答

3

顺便说一句,你应该使用==进行比较。

var arr = [1, 2, 4, 10, 9, 2, 10, 1, 1]; 
 
var newArr = new Array(); 
 

 
for (i = 0; i < arr.length; i++) { 
 
    newArr.push(arr[i]); 
 
    if (arr[i] == 10) newArr.push(0); 
 
} 
 
alert(newArr);

3

有你的代码的几个问题。

  • 您意外地使用了=而不是==。前者用于分配,后者用于比较。
  • Array.splice修改原始数组,因此不需要新数组。
  • 你应该i+1而不是i位置插入0后的10,而不是之前添加它。

arr=[1,2,4,10,9,2,10,1,1]; 
 
for (i=0; i<arr.length; i++){ 
 
    if (arr[i]==10){ 
 
     arr.splice(i+1,0,0); 
 
    } 
 
} 
 
console.log(arr);