2014-07-14 28 views
0

我有一个myArray中的单词列表,我需要让它们全都有12个符号,不多也不少。所以我首先删除了短于12个符号的所有单词。有用。但是,我必须用超过12个符号的单词剪切额外的符号。我使用array12 [j] .substr(0,12);和它不工作。 我的问题是:如何更改数组中的数据“在飞行中” - 在循环中?跟踪我使用substr后返回相同的数组长字,没有削减。在循环中用substr更改数组中的数据

function myArrayLoopFunction() 
{ 
    for (var i:int = 0; i < myArray.length; i++) // this works fine 
    { 
     if (myArray[i].length >= 12) { 
      array12.push(myArray[i]); 
     } 
    } 
    for (var j:int = 0; j < array12.length; j++) 
    { 
     if(array12[j].length > 12) 
     { 
      array12[j].substr(0,12); //doesnt work 
      trace(array12[j]); 
     } 
    } 

} 

回答

3

您可以在一个循环中完成。我认为你的错误是你没有将substr方法的结果返回给你的数组:

function myArrayLoopFunction() 
    { 
     for (var i:int = 0, str:String; i < myArray.length; i++) 
     { 
      str = myArray[i]; 

      if (str.length >= 12) { 
       myArray[i] = str.substr(0, 12); 
      } 
     }  
    } 
+0

谢谢你的回答。这是作品! – Igogogo

1

你没有把子串分配给任何东西。

array12[j].substr(0,12); 

应该

array12[j] = array12[j].substr(0,12); 
+0

谢谢!现在我意识到了:D – Igogogo