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

时间:2016-10-18 00:28:41

标签: javascript arrays while-loop

编写一个名为indexToString的函数。这个功能应该: 1.以数组为参数 2.创建并返回所有传递的数组元素的新数组作为字符串 3.每个字符串的格式应如下:“[index]是[index 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];
};

4 个答案:

答案 0 :(得分:2)

两个三个错误。

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

其次,你应该返回一个字符串数组,正如你的测试失败消息所说的那样;不要将它们打印到控制台。

编辑:第三,斯宾塞说的话。 :)使用i代替indexarray[i]代替elementAtIndex

你想从循环外的一个空数组开始,然后将你构造的每个字符串推入其中;然后在循环之后返回该数组。

或者你可以用&#34; new&#34; JavaScript的:

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

答案 1 :(得分:0)

你应该对你的代码反映一点,到目前为止这是无稽之谈。

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

  

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

     
      
  1. 数组作为参数

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

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

  6.   

所以:

  • 你创建了一个名为 indexToString 的函数,其中包含代码,正如你所做的那样。

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

  • 在你的时间里,你应该推送 新数组一个字符串构建如下:&#34; [&#34; + index +&#34;]是[&#34; + array [index] +&#34;]&#34;你应该增加索引。你循环while(index < array.length)

最后,您可以返回新阵列

学习编程祝你好运!

答案 2 :(得分:0)

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

答案 3 :(得分:0)

当您输入最后一个循环时,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]));