用于JavaScript函数中的循环 const动物=[“狗”、“猫”、“树蛙”]; 函数复数化(数组){ 对于(var i=0;i

用于JavaScript函数中的循环 const动物=[“狗”、“猫”、“树蛙”]; 函数复数化(数组){ 对于(var i=0;i,javascript,function,for-loop,Javascript,Function,For Loop,在循环完成后使用return语句。 循环应该从0迭代到小于array.length,而不是小于等于 const animals = ["dog", "cat", "tree frog"]; function pluralize(array) { for (var i = 0; i <= array.length; i++) { array[i] += "s" return (array) } } console.log(pluralize(animals));

在循环完成后使用return语句。
循环应该从0迭代到小于array.length,而不是小于等于

const animals = ["dog", "cat", "tree frog"];

function pluralize(array) {
  for (var i = 0; i <= array.length; i++) {
    array[i] += "s"
    return (array)
  }
}
console.log(pluralize(animals));
函数复数化(数组){
对于(var i=0;i
var动物=[“狗”、“猫”、“树蛙”];
函数复数化(数组){

对于(var i=0;i请更改
i您的程序存在多个问题

  • 您正在从零迭代到超过长度。
    i
    
    const动物=[“狗”、“猫”、“树蛙”];
    函数复数化(数组){
    for(var i=0;iconsole.log(pluralize(animals));
    因为您似乎使用ES6/20xx,一个简单的
    映射就可以了。如果您想变异数组,请使用
    pluralizeMutating

    constpluralize=array=>array.map(v=>`${v}s`);
    const pluralizeMutating=array=>array.forEach((v,i)=>array[i]+=“s”);
    让动物=[“狗”、“猫”、“树蛙”];
    log(`Pluralized:[${pluralize(动物)}]`);
    log(`animals数组未被触及:[${animals}]`);
    多元化(动物);
    
    console.log(`pluralizeMutating ran-animates数组现在是:[${animates}]`)
    ,因为您立即在循环中
    返回
    。将
    返回
    从循环中移到函数的末尾。您还应该迭代到
    i
    。否则您将对
    数组[Array.length]进行操作
    ,在最后一个元素之后。我想,树不是动物,但树蛙是。好吧,我想你忘了逗号,已经改变了。这不是变异。变异是:
    array=>array.forEach((x,I)=>array[I]=pluralize(x))
    这也不起作用,但你是对的(我心烦意乱,不得不离开编辑答案)。修复了代码。
    function pluralize(array){
      for(var i=0;i<array.length;i++){
          array[i] += "s" ;
           } 
     return (array);
     }
    
    for(var i=0;i<array.length;i++){
                array[i] += "s" ;
    
        }
       return (array)//take it outside of for loop.
      }