JS - 为什么charAt()没有在for循环中工作

时间:2017-08-15 16:15:19

标签: javascript for-loop console.log

我正在刷Javascript函数和for循环,并且无法理解为什么下面的代码无法正常运行。 charAt()函数是否已弃用?我以为该函数将遍历我的cars数组中的每个字符串......

var cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"];
var i;
for (i = 0; i < cars.length; i++){
    console.log(i.charAt(0))
    }

4 个答案:

答案 0 :(得分:2)

您将i置于chaartAt(),但您需要的是该位置的值cars[i]

i.charAt(0)更改为cars[i].charAt(0)

var cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"];
var i;

for (var i = 0; i < cars.length; i ++) {
    console.log(cars[i].charAt(0));
}

答案 1 :(得分:2)

i是您的循环索引,因此它没有方法.charAt()。你可能打算做cars[i].charAt(0)

这将从索引cars的{​​{1}}数组中获取字符串,然后在该字符串上调用i以获取字符串中的第一个字符。

这也可以写成.charAt(0),除非你需要支持像IE6中那样真正老的JS引擎。

最新的JS引擎中提供的另一种方法是使用cars[i][0]语句。这样可以避免手动索引。

for of

这会将var cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"]; for (const car of cars) { console.log(car[0]); } 的每个成员分配给cars(每次迭代),这会让事情变得更加清晰。我也继续使用car,因为任何支持[0]语句的引擎也支持字符串索引。

答案 2 :(得分:1)

vonc@VONC:~/gits$ echo $PATH
/usr/local/bin:/usr/bin:/bin
vonc@VONC:~/gits$ which git
/usr/bin/git
vonc@VONCAVN7:~/gits$ git v
git version 2.13.0

vonc@VONC:~/gits$ export PATH=~/gits/v2.14.0/bin:$PATH
vonc@VONC:~/gits$ git v
git version 2.14.0

你没有提到你想要引用的元素的索引,charAt(0)不能为数字工作

答案 3 :(得分:0)

如果要迭代数组中的每个字符串,根本不需要charAt()。这是你在寻找什么,或者你只是想在迭代数组时想要每个字符串的第一个字符?

var cars = ["BMW", "Volvo", "Saab", "Ford", "Fiat", "Audi"];
var i;
for (i = 0; i < cars.length; i++){
console.log(cars[i])
}

这会将每个字符串输出到控制台,而不仅仅是第一个字符。