Javascript 为什么.size()不能按我认为应该的方式工作?

Javascript 为什么.size()不能按我认为应该的方式工作?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,下面是一段代码,用于更改residentadvisor.net上旋转木马中的图片。单击“右”箭头,图片更改,点导航向右移动;单击“左”箭头,图片更改,点导航向左移动。如果您处于点导航系列的开头,并单击“左”,它将转到结尾,否则显示的图片将由您单击的点的数据属性决定 n.attr("id") == "right" ? currentIndex == $("#slider li").size() - 1? currentIndex = 0 : currentIndex++ : n.attr

下面是一段代码,用于更改residentadvisor.net上旋转木马中的图片。单击“右”箭头,图片更改,点导航向右移动;单击“左”箭头,图片更改,点导航向左移动。如果您处于点导航系列的开头,并单击“左”,它将转到结尾,否则显示的图片将由您单击的点的
数据
属性决定

n.attr("id") == "right" ? currentIndex == $("#slider li").size() - 
    1? currentIndex = 0 : currentIndex++ : n.attr("id") ==
    "left" ? currentIndex == 0 ? currentIndex = $("#slider li")
    .size() - 1 : currentIndex-- : currentIndex = n.attr("data-position");
我无法理解的是以下代码:
currentIndex==$(“#slider li”).size()-1?

如果滑块的
currentIndex
位于列表末尾,则高亮显示的点导航返回到索引位置0,但为什么它通过检查大小然后减去1来确定这一点?检查
currentIndex
是否等于
.size()
的结果有意义吗?但是当我删除
-1
时,点导航将从页面上消失,不管间隔指定多长时间,然后再次显示在0位置。如果我将其更改为
-2
,则点导航将在循环前的倒数第二个点停止。用
.length
替换
.size()

-1
存在的原因已经得到了回答,但是为什么
.size()
.length
没有按我认为的方式工作?

.size()
length
不是以零为基础的,因为它们在计算列表中的元素数。因此,计数自然会从1开始。CurrentIndex是基于零的索引,可能是因为它是数组中的索引。在项目数组中,零将是第一个索引/节点,长度-1将是最后一个索引/节点

例如,对于后代:数组中的10个项目看起来像这样:

item[0]
...
item[9]
当数组的大小(或长度)为10时,数组索引的范围为0到9


我不确定这是否是您要问的问题,但似乎确实是这样。

如果我键入的正确,
.index()
会使循环无法启动或停止重复。索引值与数组大小不同。当大小从
1
开始时,索引从
0
开始。像在
var arr=[“a”]中那样思考访问它将通过
arr[0]
当它的
长度
1
作为包含一个项目时。