JavaScript中涉及if语句的slice方法引起的混淆
我正在读一本JavaScript书,这个例子显示了JavaScript中涉及if语句的slice方法引起的混淆,javascript,methods,Javascript,Methods,我正在读一本JavaScript书,这个例子显示了 var text=“发现了二战遗迹”; 对于(变量i=0;i
var text=“发现了二战遗迹”;
对于(变量i=0;i console.log(文本)代码>切片方法类似于SQL和其他编程语言中的substr方法。
第一个参数是字符串的开头,第二个参数是字符串的长度加上单词的长度
例如,如果一句话说:“德国发动了第二次世界大战”
那么我就15岁了,我+12就27岁了
如果省略第二个参数,则它将假定为数组的长度。
“二战”的长度是12,包括空格
- 给定的文本不仅是
“二战”
,也可能是“二战中的某物。”
text.slice(i,i+12)
表示给定文本中的“二战”
string.slice(,)
提取字符串的一部分。
='abcdefg'.切片(0,3)
'abc'
='abcdefg'。切片(2,3)
'c'
='abcdefg'。切片(3)
'defg'
='abcdefg'.切片(0,3)+'XYZ'+'abcdefg'.切片(3)
'abcXYZdefg'
函数替换WW2(文本){
对于(变量i=0;i首先,提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串
参数
BeginIndex:它是提取开始的起始索引。这是一个从零开始的索引
endIndex:它是字符串提取之前的结束索引。它也是一个从零开始的索引。如果endIndex被省略
或大于字符串长度
,则字符串提取一直到字符串末尾
您的代码片段所做的是首先将字符串提取为一个新字符串(其中开始索引为i
,结束索引为i+12
),即text.slice(i,i+12)
,然后将此提取的字符串与“二战”
进行比较
text=text.slice(0,i)+“第二次世界大战”+text.slice(i+12)代码>
因此,上面的代码片段将“二战”替换为“第二次世界大战”。它包含以下两个部分:
text.slice(0,i)
:它将文本从开始索引到当前迭代(直到i
)进行切片
text.slice(i+12)
:它将文本从当前迭代(从i+12
)到text
(到text.length
)的末尾进行切片
什么是文本
?我将您的代码转换为可运行的代码段。我建议您在循环中取消注释控制台.log
,并尝试运行它以查看结果,希望这能帮助您理解它的工作原理。@Nick谢谢,我不确定我是否应该编写(文本)的值,因此我感谢您修复它。当我的问题的代码发生变化时,我也(很有趣)感到困惑,但很快意识到这是可以在堆栈溢出中完成的。@DeC有人为我更改了它并给了它一个值,如果你愿意的话。@samabbas 12是因为“二战”
的长度,它是12。你想用“第二次世界大战”
string.slice(,)
这是错误的。第二个参数不是count
,即多少。它是endIndex。'abcdef'。切片(2,3)
不等于“cde”
。它等于检查理解正确与理解容易,两者是不同的。如果一件容易的事情不正确,我们就无法理解它。那更好