编写一个名为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];
};
答案 0 :(得分:2)
两个三个错误。
首先,当i
不再小于array.length
时,while循环将退出;第一个这样的数字是array.length
。这意味着,在循环结束时,array[i]
是array[array.length]
,它位于数组之外,因此undefined
。
其次,你应该返回一个字符串数组,正如你的测试失败消息所说的那样;不要将它们打印到控制台。
编辑:第三,斯宾塞说的话。 :)使用i
代替index
,array[i]
代替elementAtIndex
。
你想从循环外的一个空数组开始,然后将你构造的每个字符串推入其中;然后在循环之后返回该数组。
或者你可以用&#34; new&#34; JavaScript的:
var indexToString = array => array.map((e, i) => `${i} is ${e}`)
答案 1 :(得分:0)
你应该对你的代码反映一点,到目前为止这是无稽之谈。
让我们分解问题以确定应该做什么:
编写一个名为 indexToString 的函数。这个功能应该:
以数组作为参数
创建并返回所有传递的数组元素的新数组 字符串
- 醇>
每个字符串的格式应如下:“[index]是[索引元素]”
所以:
你创建了一个名为 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]));