使用substr in循环更改数组中的数据

时间:2014-07-14 14:07:11

标签: arrays actionscript-3 for-loop substr

我在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]);
        }
    }

}

2 个答案:

答案 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);