繁体   English   中英

循环学习。 无法弄清楚我的代码中缺少什么。

[英]Learning While Loops. Can't figure out what I am missing in my code.

编写一个名为indexToString的函数。 该函数应:1.以数组作为参数2.创建并返回所有传递的数组元素作为字符串的新数组3.每个字符串的格式应如下:“ [[index] is [element at index]”。我得到的错误:将传入的数组元素的数组作为具有指定元素索引的字符串返回,期望未定义为深度相等['0为1','1为2','2为3']

这是我的代码:

var indexToString = function(array){
  index = 0;
  elementAtIndex = 0;
  var i = 0;
  while(i < array.length){
    console.log(index + " is " + elementAtIndex);

    i++
  }
  return array[i];
};

二三 错误。

首先,当i不再小于array.length时,while循环将退出。 第一个这样的数字是array.length 这意味着,在循环结束时, array[i]array[array.length] ,它刚好位于数组外部,因此undefined

其次,应该按照测试失败消息的指示返回一个字符串数组; 不要将它们打印到控制台。

编辑:第三,斯宾塞说了什么。 :)使用i代替index ,并使用array[i]代替elementAtIndex

您想从循环外部的空数组开始,并将构造的每个字符串压入其中; 然后在循环后返回该数组。

或者,您也可以使用“新” JavaScript:

var indexToString = array => array.map((e, i) => `${i} is ${e}`)

您应该在代码上多花点功夫,到目前为止,这完全是胡说八道。

让我们分解问题以确定应该做什么:

编写一个名为indexToString的函数。 该功能应:

  1. 数组作为参数

  2. 创建并返回所有传递的数组元素的新数组作为字符串

  3. 每个字符串的格式应如下: “ [索引]是[索引元素]”

所以:

  • 您将创建一个名为indexToString的函数,该函数包含代码,就像您所做的那样。

  • 在此之前的初始化部分 ,您应该创建一个将要填充的新的空数组 ,并声明一个名为index整数 ,例如初始化为0的整数 ,该整数将用于循环遍历原始数组。 (提示:var new_array = [];创建并使用new_array.push( elem );附加元素)

  • 在这期间,您应该在新数组的末尾推送一个按如下方式构建的字符串:“ [” + index +“]是[” + array [index] +“]”,并且应该增加索引。 您循环while(index < array.length)

最后,您可以返回新数组

祝您学习编程好运!

如果arraylenth为10,则函数将返回array [10]。这是数组绑定的。

当您进入最后一个循环时, i等于array.length ,因此此后未定义array[i] 但这可能不是您想要的。 您想返回完整的数组。

 var indexToString = function(array){ var new_array = []; var i = 0; while(i < array.length){ new_array[i] = i + " is " + array[i]; i++; } return new_array; }; console.log(indexToString([1,2,3])); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM