问一个简单javascript 问题,求解析

匿名
楼主 (北美微论坛)
本帖最后由 匿名 (楼主) 于 2022-6-14 15:40 编辑

这是做好的题
function returnDay(num) {
  const day = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
  if (num < 1 || num > 7) {
    return null
  } else {
return day[num - 1];
  }
}
请问下面为什么[num - 1], 如果Monday从0开始算,'Tuesday'是1, 那么-1后, Monday变成 -1, Tuesday变成0, 顺序排列变了呀?

g
garychen529
本帖最后由 garychen529 于 2022-6-13 19:11 编辑

数组(array)的索引(index)从0开始 所以要取array里面的第X个元素(element)的时候要在X上面减1
比如说:
传进来的num数值是1, 那最后返回的会是day[1 - 1], 也就是day[0], 就是‘Monday’;
传进来的num数值是2, 那最后返回的会是day[2 - 1], 也就是day[1], 就是‘Tuesday’;
传进来的num数值是3, 那最后返回的会是day[3 - 1], 也就是day[2], 就是‘Wednesday’......
以此类推.
x
xxxxx__lol
因为根据使用习惯,后续call func会输入Day(1)对应的是Monday,但是实际上Monday index 是0。
除非你告诉user,从0输入,0对应Monday,输入的时候请注意。那你就不用num-1了
y
yousei
Monday在arry中的index是0,不是Monday的数字是0
在If中已经申明了若数字不在1-7的区间内,直接结束function
匿名

数组(array)的索引(index)从0开始 所以要取array里面的第X个元素(element)的时候要在X上面减1
比如说:
传进 ...

明白。感谢
匿名
不明觉厉