我试图理解这段代码:
var text = "Hi, my name is Tyler. How are you?";
var myName = "Tyler";
var hits = [];
for (i = 0; i<= text.length; i++) {
if (text[i] === "T") {
for (j = i; j = (i + myName.length); j++) {
hits.push(i);
}
}
}
text [i]究竟是什么意思?对我来说,它似乎在说&#34;在文本数组中找到i元素&#34;。我不明白这有两个原因。第一个是i元素没有被定义为任何东西。是说要搜索文本中的每个元素&#34;数组&#34;直到它匹配T,这是我名字的第一个字母?第二,为什么它只是一个字符串时将文本表示为数组?文本后面的[]括号是不是指将文本称为数组?
对不起,如果这个问题没有意义,但我对这一切感到非常困惑!提前感谢能够为我解答此问题的任何人!
答案 0 :(得分:4)
text [i]实际意味着什么?
“从i
获取属性text
。”
在文本数组中找到i元素
text
是一个字符串,而不是一个数组。
第一个是i元素没有被定义为任何东西
i
在前一行定义:
for (i = 0; i<= text.length; i++) {
第二,为什么它只是一个字符串时将文本表示为数组?
不是。 []
不是特定于数组的。
另一种方式(在ECMAScript 5中引入)是将字符串视为类似数组的对象,其中单个字符对应于数字索引:
return 'cat'[1]; // returns "a"
答案 1 :(得分:3)
JavaScript字符串和数组共享一个共同点:它们都是可迭代的,这意味着我们可以一次检查一个元素。我们引用带有下标的元素[index],其中index是0到length -1范围内的数字。
var myArray = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
console.log(myArray.length); // 10
console.log(myArray[myArray.length]); // undefined
console.log(myArray[myArray.length-1]); // 9
var myString = "0123456789";
console.log(myString.length); // 10
console.log(myString[myString.length]); // undefined
console.log(myString[myString.length -1]); // 9
我们发现两者都有一个共同的索引特征:
它们都是零索引的。 他们都使用索引下标。 它们都是可迭代的(我们可以遍历元素)。 为了显示差异,我们需要尝试分配。
myArray[myArray.length] = 10;
console.log(myArray[myArray.length-1]); // 10
myString[myString.length] = "A";
console.log(myString[myString.length-1]); // undefined
进一步说明,
myArray[5] = 55;
console.log(myArray[5]); // 55
myString[5] = "f";
console.log(myString[5]); // 5
这表明虽然我们可以通过引用它的索引将值或对象赋给数组元素,但我们不能用字符串来做。描述这一点的术语是可变性。数组是可变的(我们可以改变它的元素)。字符串是不可变的(我们不能改变它的字符)。
所以我们现在知道文本[i]是什么。索引i处字符串文本中的字符,其中i从零开始,即字符串开头的索引。
答案 2 :(得分:1)
JavaScript字符串和数组共享一个共同点: 它们都是可迭代的,
示例强>
阵列
var myArray = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
console.log(myArray.length); // 10
console.log(myArray[myArray.length]); // undefined
console.log(myArray[myArray.length-1]); // 9
字符串
var myString = "0123456789";
console.log(myString.length); // 10
console.log(myString[myString.length]); // undefined
console.log(myString[myString.length -1]); // 9