我刚接触学习javascript并且正在开始一个更严肃的程序之前正在做一个免费的在线迷你训练营。迷你训练营提供了一些练习来练习视频中教授的内容。我已多次观看视频,试图找出我在这里做错了什么的线索,我试过谷歌搜索问题,但我似乎无法改变任何事情。关于这一切是如何运作的我知之甚少,我想我只需要知道他们正在做什么来向我解释它。
以下是练习,其中的说明如下:
function incrementByOne(arr) {
// arr是一个整数数组
//将每个整数增加一个
//返回数组
这是我尝试解决的问题:
function incrementByOne(arr) {
for (var i = 0; i < arr; i++) {
return (arr[i]);
}
当我用提供的测试交叉检查我的解决方案时,它每次都失败。我认为问题在于我对如何正确返回数组缺乏了解?我不确定,希望你进来的地方!
答案 0 :(得分:1)
//将每个整数增加一个
//返回数组
只需访问每个元素并将其添加1即可。 放回数组并最后返回
function incrementByOne(arr) {
for (var i = 0; i < arr; i++) {
arr[i] = arr[i]+1; // increase each integer by one
}
return arr; // Loop is done and return the array
}
答案 1 :(得分:1)
有几个问题:
for (var i = 0; i < arr; i++) {
// ...
}
一旦条件评估为false
,for循环就会停止。因为要遍历每个数组项,所以必须将i
与数组的长度进行比较,即arr.length
:
for (var i = 0; i < arr.length; i++) {
// ...
}
现在为每个元素执行for循环中的代码。增加i
元素:
for (var i = 0; i < arr.length; i++) {
arr[i]++; // increment it by one
}
现在,您的数组包含更新的值。返回对数组的引用:
function incrementByOne(arr) {
for (var i = 0; i < arr.length; i++) {
arr[i]++; // increment it by one
}
return arr;
}
如果您可以创建新阵列:
function incrementByOne(arr) {
return arr.map(item => item + 1);
}
// or:
var incrementByOne = arr => arr.map(i => i + 1);
答案 2 :(得分:0)
你必须这样做
function incrementByOne(arr) {
// here you have to pass arr.length to denote how many elements you are traversing
for (var i = 0; i < arr.length; i++) {
// increment the element by 1
arr[i] = arr[i] + 1;
}
// return once the whole array has been updated
return arr;
}
console.log(incrementByOne([1, 2, 3, 4]));
在评论中添加了更改,请查看它们