繁体   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