[英]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的函数。 该功能应:
以数组作为参数
创建并返回所有传递的数组元素的新数组作为字符串
每个字符串的格式应如下: “ [索引]是[索引元素]”
所以:
您将创建一个名为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.