Javascript滚动文本函数-array.shift()不是函数

时间:2019-03-11 19:22:14

标签: javascript arrays

我正在尝试使滚动文本功能,但在Chrome控制台中出现错误:“ nasArray [i] .shift不是函数”。怎么了?

var text = 'Milica';
var text1 = 'Danka';
var text2 = 'Marko';

var stext = text.split('');
var stext1 = text1.split('');
var stext2 = text2.split('');
var nasArray = [text, text1, text2];

var i = 0;

var scroll = document.getElementById('scroll');

function start() {
    if (nasArray[i].length > 0) {
        scroll.innerHTML += nasArray[i].shift();
        setTimeout(start, 200);
    } else {
        i++;
        if (i > 2) {
            i = 0;
        }
        scroll.innerHTML = '';
        start();
    }
}

start();

3 个答案:

答案 0 :(得分:1)

shift()method of Arrays,而不是字符串。因为您正在索引nasArray[i]引用中的字符串,所以类型不匹配。

尝试 改为scroll.innerHTML += nasArray.shift()

答案 1 :(得分:1)

nasArray [i]不是数组。这些元素是字符串。请改用数组的shift函数。

编辑:您也可以执行Luca在评论中建议的操作。 var nasArray = [stext, stext1, stext2]。这将起作用,因为stextstext1等是由split函数创建的,因此是数组。

答案 2 :(得分:0)

您尝试在字符串而不是数组上调用.shift()

如果要删除每个单词的第一个字母,则应使用拆分后的单词构建数组:

var nasArray = [stext, stext1, stext2];

如果要从nasArray中删除第一个单词,只需在.shift()而不是nasArray上调用nasArray[i]