Leia_Organa
Leia_Organa

Reputation: 2094

Iterating over Arrays in Javascript

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

Answers (2)

Pranav C Balan
Pranav C Balan

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>'
);


But it's better to use 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

apscience
apscience

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

Related Questions