簡體   English   中英

JS函數給我控制台中未定義的內容,但我期望有一個數字

[英]JS Function Gives Me Undefined in Console but I'm Expecting a Number

我正在構建一個JS新聞動態器,以像素像素的形式在畫布上呈現字符串。 當渲染字符串的可視長度(以像素為單位並在以下函數中由全局變量“ calc_w ”表示)超過calc_w的寬度(在以下函數中由全局變量“ w ”表示)時,我需要放置第二個下一行呈現的字符串的一半。 我根據字符串中的空格數(在下面由變量“ spaces ”表示)確定將字符串分解的位置。

但是,我無法弄清楚為什么我的小功能在控制台中返回的是undefined而不是spc_indx[i]變量的數字。

function ins_breaks(str) {
    var spaces = 0;
    var spc_indx = [];
    if (calc_w > w) {
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(i) == " ") {
                spaces++;

                spc_indx[i] = spaces; //Tells the switch where to cut the string.

            }
        }
        switch (spaces) {
            case 4:
                //4 spaces = 5 words.
                var line2 = str.substr(spc_indx[2]);
                //str.replace(' ', '');
                console.log(spc_indx[2])
                break;
            case 5:
                console.log(spc_indx[2])
                break;
        }
    }
}

記錄' spaces '會產生預期的數字,但是當我將空間分配給spc_indx數組的一部分時,它將返回未定義狀態。 為什么未定義spc_indx數組,而不是我希望返回的數字?

這是小提琴: https : //jsfiddle.net/9u3ez6gu/22/

spc_indx[i] = spaces;

應該

spc_indx[spaces] = i;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM