Javascript TypeError声明列表未定义



我创建了一个函数,它接收一个列表作为输入,然后对该列表进行操作:

function selected_items(list) {
    for (i=0;i<=list.length;i++){
        item = list[i].split("-");
        item_id = item[0] + '-' + item[1] + '-' + item[2]
        user_id = item[4]
        $('#shift_data_' + user_id).children('#' + item_id).toggleClass('selected')
    }
}

列表由如下字符串组成:["a-b-c", "a1-b1-c1"等]

我想一个一个地处理字符串,在操作符"-"之后分割它们,然后做一些工作来帮助我在DOM中选择一些项目。

有趣的部分是,代码工作如预期,但在控制台我得到下面的错误:

 TypeError: list[i] is undefined
    --> item = list[i].split("-");

关于为什么我得到这个错误的想法,即使代码是工作的?

您正在循环超出范围的列表。试着修改一下:

for (i=0; i<=list.length; i++){
由:

for (i=0; i<=list.length - 1; i++){

或:

for (i=0; i < list.length; i++){

最新更新