2017-08-16 83 views
0

我是新来学习的JavaScript和目前正在做一个免费的在线迷你训练营,然后我开始一个更严肃的程序。微型训练营提供了一些练习,练习视频中教授的内容。我多次观看视频,试图找出我在这里做错了什么的线索,并试着用谷歌搜索这个问题,但我似乎无法改变任何事情。关于这一切如何运作,我的知识非常有限,我想我只需要一个知道他们在做什么来向我解释它的人。增加每个整数一个返回Javascript数组

这里是运动,与所述指令评论略低于:

function incrementByOne(arr) { 

// ARR是整数
//增加的每一个整数的阵列由一个 //返回数组

这里是我的解决方案:

function incrementByOne(arr) { 
for (var i = 0; i < arr; i++) { 
    return (arr[i]); 
} 

当我交叉检查我的解决方案与提供每次测试都会失败。我认为问题在于我对如何正确地返回数组缺乏了解?我不确定,希望这是你进来的地方!

+1

一个'return'语句将停止执行...换句话说,你的for循环在第一次迭代时停止 –

+0

你只返回一个数组元素'arr [i]',而不是整个数组'arr'。 –

回答

1

有几个问题:

for (var i = 0; i < arr; i++) { 
    // ... 
} 

for循环将立即停止为条件的计算结果到false。因为要遍历每个数组项,你要比较i到数组,这是arr.length长度:

for (var i = 0; i < arr.length; i++) { 
    // ... 
} 

里面的代码for循环的每个元素现在执行。增加i th元素:

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); 
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 
} 
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]));

添加注释中的更改,请看看他们