Javascript函数

Javascript函数,javascript,Javascript,下面复制的教程中的函数返回2006年4月27日星期四00:00:00 GMT+0900(日本标准时间) 有人能解释一下数字对11.4、8、2和5、2的作用吗?为什么其中一个数字对后面跟着-1?我假设这些编号的对被传递到函数number中,作为start和length的值?对吗?为什么会有这些具体的数字?1是怎么回事 function extractDate(paragraph) { function numberAt(start, length) { return Number(pa

下面复制的教程中的函数返回2006年4月27日星期四00:00:00 GMT+0900(日本标准时间)

有人能解释一下数字对11.4、8、2和5、2的作用吗?为什么其中一个数字对后面跟着-1?我假设这些编号的对被传递到函数number中,作为start和length的值?对吗?为什么会有这些具体的数字?1是怎么回事

function extractDate(paragraph) {
  function numberAt(start, length) {
    return Number(paragraph.slice(start, start + length));
  }
  return new Date(numberAt(11, 4), numberAt(8, 2) - 1,
                  numberAt(5, 2));
}

show(extractDate("died 27-04-2006: Black Leclère"));

它告诉您的方法从何处开始剪切段落,以及应该剪切多少个字符

11,4意味着它应该从第11个字符开始,然后从那里切掉4个字符。请记住,您从0开始

d i e d   2 7 - 0 4 -  2  0  0  6  :     B  l  a  c  k     L  e  c  l  è  r  e
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
11,4-11个字符=2。然后4个字符=6 |所以是2006年

8,2-8字符=0。2从那里开始=4 |所以04

基本上,你的方法是切割这些片段,然后用它们创建一个日期

编辑 我的意思是,它返回该字符串的一部分,但不对原始字符串做任何操作


请参见此处以获取参考:

它告诉您的方法从何处开始剪切段落,以及应该剪切多少个字符

11,4意味着它应该从第11个字符开始,然后从那里切掉4个字符。请记住,您从0开始

d i e d   2 7 - 0 4 -  2  0  0  6  :     B  l  a  c  k     L  e  c  l  è  r  e
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
11,4-11个字符=2。然后4个字符=6 |所以是2006年

8,2-8字符=0。2从那里开始=4 |所以04

基本上,你的方法是切割这些片段,然后用它们创建一个日期

编辑 我的意思是,它返回该字符串的一部分,但不对原始字符串做任何操作

请参见此处以获取参考:

提取日期获取一个“段落”字符串,在这种情况下,它是

"died 27-04-2006: Black Leclère"
现在,您的数字从字符串输入的第n个字符开始。因此,在第一个数字(numberAt(11,4)中,它得到第11个字符和接下来的4个字母..字符串“Deed 27-04-2006:Black Leclère”中是“2006”。numberAt(8,2)给你第8个字符,它是0,只得到2个字符,所以它返回“04”。你从中减去1,它就得到了“03”,然后是numberAt(5,2)提供“27”。

提取日期获取一个“段落”字符串,在这种情况下,它是

"died 27-04-2006: Black Leclère"

现在,您的数字at只得到一个从字符串输入的第n个字符开始的数字。因此,将您的第一个数字at(numberrat(11,4)int,它得到第11个字符和接下来的4个字母。字符串“Deed 27-04-2006:Black Leclère”中的哪个是“2006”。numberrat(8,2)给您第8个字符,即0,只得到2个字符,因此返回“04”。从中减去1,则返回“03”,然后数字(5,2)将返回“27”。

这些对对应于子字符串的起始位置和长度(例如,11,4表示从第12个字符开始,到第15个字符结束的子字符串)

11,4是年。8,2是月。5,2是日。这里有-1,因为正如JohnP提到的,Date()函数的月份从0开始,1月(起始索引)而不是1(流行的方言)


编辑:清除了一些措辞。

这些对对应于子字符串的起始位置和长度(例如,11,4表示从第12个字符开始到第15个字符结束的子字符串)

11,4是年。8,2是月。5,2是日。这里有-1,因为正如JohnP提到的,Date()函数的月份从0开始,1月(起始索引)而不是1(流行的方言)


EDIT:清除了一些措辞。

函数
numberAt()
返回一个数字。它通过从段落中提取一个字符串并将该字符串转换为一个数字来完成此操作。函数的参数
start
length
指定应提取段落的哪一部分

因此,
numberAt(11,4)
将提取一个4位字符串,从段落中的第12个字符开始。假设该字符串只包含数字,它将转换为4位数字,并返回


-1
是算术表达式的一部分:
numberAt(8,2)-1
。结果将比函数
numberAt(8,2)
返回的任何数字都少一个返回一个数字。它通过从段落中提取一个字符串并将该字符串转换为一个数字来执行此操作。函数的参数
start
length
指定应提取段落的哪一部分

因此,
numberAt(11,4)
将提取一个4位字符串,从段落中的第12个字符开始。假设该字符串只包含数字,它将转换为4位数字,并返回


-1
是算术表达式的一部分:
numberrat(8,2)-1
。结果将比
numberrat(8,2)返回的任何数字都少一个

谢谢。那么在它完成11,4之后,它是否会将8,2应用于剩余部分?那么-1呢?它实际上不会从原始字符串中删除子字符串。它会返回一个包含所需字符的新字符串。@mjmitche-1是以字符(8,2)为单位的它是4,然后它将其减少1。@ZDYN您是正确的,它将重新运行它。谢谢。那么在它完成11,4之后,它是否将8,2应用于剩余部分?那么-1呢?它实际上不会从原始字符串中删除子字符串。它将返回一个包含所需字符的新字符串。@mjmitche-1是这样的,它将接受字符(8,2)等于4,然后将其减少1。@ZDYN您是正确的,它将重新计算它。实际上,在Date()中,月份确实从0开始。有效值将为0-11,因此需要decremented@JohnP,这就是我的意思。对不起,我想我的措辞不正确。实际上,月从日期()中的0开始。有效值应为0-11,因此需要decremented@JohnP这就是我的意思