Create a new loop array for JS

4

I'm trying to create a new array for every round of a for.

var route = [];

for (var i = 0; i < 5; i++) {
  route[i].push(result.routes[0].overview_path[i].lat());
  route[i].push(result.routes[0].overview_path[i].lng());

  console.log(route[i]);

}

But the console tells me that it's undefined

    
asked by Eduardo 03.05.2018 в 11:03
source

2 answers

3

You can not do a push to an undefined:

var route = []; //array vacío

for (var i = 0, i < 5; i++) {
  //estás asumiendo que route[i] tiene un array
  //pero...
  console.log(route[i]); //undefined
  //fallaría
  //route[i].push(result.routes[0].overview_path[i].lat());
  //route[i].push(result.routes[0].overview_path[i].lng());

  //solución:
  let aux=[];
  aux.push(result.routes[0].overview_path[i].lat());
  aux.push(result.routes[0].overview_path[i].lng());
  route.push(aux);
}                          
    
answered by 03.05.2018 / 11:10
source
0

You are trying to access the i position of an array that is not initialized. With initializing it, the problem is solved.

var route = [0];

for (var i = 0, i < 5; i++) {
                        route[i].push(result.routes[0].overview_path[i].lat());
                        route[i].push(result.routes[0].overview_path[i].lng());

console.log(route[i]);

                    }
    
answered by 03.05.2018 в 11:19