Reputation: 2094
I am a JavaScript newbie. I'm trying to practice some sample JavaScript problems. I'm a little stuck when it comes to this question about iterating over arrays. Can anyone point me in the right direction?
I am trying to take the values in oldArray
, add 5 to each of them, and store in newArray
.
var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];
var newArray = [];
function plusFive(oldArray[i]) {
for (var i = 0; i < oldArray.length; i++) {
newArray.push(oldArray[i]) + 5) };
}
}
Upvotes: 3
Views: 142
Reputation: 115212
Bug in your code is an additional parenthesis and closing brace in push statement line, just remove them. Also there is no need to set function parameter here since both array are accessible inside the function, if you want to pass then you need to change it to function plusFive(oldArray)
, and call the function with array as parameter.
newArray.push(oldArray[i] + 5) ;
//-----------------------^----^-
Working snippet :
var newArray = [];
function plusFive(oldArray) {
for (var i = 0; i < oldArray.length; i++) {
newArray.push(oldArray[i] + 5)
};
}
plusFive([1,2,4,6,32,44]);
document.write(
'New array :' +
'<pre>' + JSON.stringify(newArray) + '</pre>'
);
Function without array as parameter
var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];
var newArray = [];
function plusFive() {
for (var i = 0; i < oldArray.length; i++) {
newArray.push(oldArray[i] + 5)
};
}
plusFive();
document.write(
'Old array :' +
'<pre>' + JSON.stringify(oldArray) + '</pre>' +
'New array :' +
'<pre>' + JSON.stringify(newArray) + '</pre>'
);
map()
for creating a modified array from an existing array
var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];
var newArray = oldArray.map(function(v) {
return v + 5;
});
document.write(
'Old array :' +
'<pre>' + JSON.stringify(oldArray) + '</pre>' +
'New array :' +
'<pre>' + JSON.stringify(newArray) + '</pre>'
);
Upvotes: 8
Reputation: 7253
Your code is almost right, but you closed parenthesises incorrectly, and you need to name the function argument correctly. For function arguments, you're just giving labels. You can't name a variable something[a]
, and an argument cannot be named something[a]
.
Try:
var oldArray = [12, 45, 6, 23, 19, 20, 20, 15, 30, 42];
var newArray = [];
function plusFive(oldArray) {
for (var i = 0; i < oldArray.length; i++) {
newArray.push(oldArray[i] + 5)
}
}
plusFive();
Upvotes: -1