我在myArray中有一个单词列表,我需要让它们都有12个符号,不多也不少。所以首先我清除了短于12个符号的所有单词。有用。但是我必须在超过12个符号的单词中剪切额外的符号。我使用 array12 [j] .substr(0,12); ,它不起作用。 我的问题是:如何在数组中更改数据"在运行中" - 在循环中?跟踪我在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]);
}
}
}
答案 0 :(得分: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);
}
}
}
答案 1 :(得分:1)
您没有将子字符串分配给任何内容。
array12[j].substr(0,12);
应该是
array12[j] = array12[j].substr(0,12);