在javascript中循环遍历数组时显示意外的令牌

时间:2016-01-04 10:10:13

标签: javascript arrays

我是一个javascript新手。我必须创建一个带有数组pets的var ['cat', 'dog', 'rat'],并使用for循环我将该数组中的每个字符串复数。

我的代码是:

var pets = ['cat', 'dog', 'rat'];
for (pets[i] = pets[i] + 's';) {    

};
console.log(pets);

错误是:

for (pets[i] = pets[i] + 's';) {    
                         ^
Could not run: Unexpected token ) 

2 个答案:

答案 0 :(得分:4)

for循环的语法不正确。它会抛出语法错误。

正确的语法是:

for ([initialization]; [condition]; [final-expression])
    statement

更新代码:

for(var i = 0; i < pets.length; i++) {
    pets[i] = pets[i] + 's';
}

你甚至可以用一行来写这个,利用每次迭代后评估的for的最后一个表达式。

for(var i = 0; i < pets.length; pets[i] = pets[i] + 's', i++);

注意:使用, - 逗号运算符分隔多个表达式。

答案 1 :(得分:3)

你的for循环搞砸了,肯定可以使用for-loop完成,但我建议你使用Array.prototype.map()

var pets = ['cat', 'dog', 'rat'];
pets = pets.map(function(el){
   return el+"s";
});
  

map()方法创建一个新数组,其中包含调用a的结果   为此数组中的每个元素提供了函数。

在ECMAScript2015中箭头功能

var pets = ['cat', 'dog', 'rat'];
pets = pets.map( el => el+"s");

如果您仍然想使用for循环并想要编写一些不必要的代码,请执行以下操作:

for(var i = 0; i < pets.length; i++){
  pets[i] = pets[i] + 's';
}