Emilylaw
Emilylaw

Reputation: 61

Unable to access array data in Javascript

I am still very new to programming and javascript. The problem I am facing now is I am not able to access the data inside array. Here is my code snippet

global.arr = [];
var id = 12;

for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

this is the console image

My question is that, how can I access into the data and what did i do wrong here?


Here is the code I currently have, it still doesn't seem to work:

var arr = [];
var id = 12;

for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

Upvotes: 4

Views: 760

Answers (4)

Jonathan Campos
Jonathan Campos

Reputation: 11

A variable declared outside a function, becomes GLOBAL. you can declare the variable arr.

var arr = [];
var id = 12;
for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

Upvotes: 1

Eduardo Bahia
Eduardo Bahia

Reputation: 132

To a global array you don't need to set

global.arr = [];

Just set a let variable:

let arr = [];
var id = 12;

See: Let

Then use your code:

let arr = [];
var id = 12;

for (var i=0; i<5; i++) {
 arr.push(id);
 id++;
}
console.log(arr);
console.log(arr[0]);

Upvotes: 2

Kurt
Kurt

Reputation: 1897

Edit: Expanding this a little more:

global is not a JavaScript object. There are global objects, but you access them through window not global. Your code would only work if you had, somewhere else, set global equal to window.

Unless you have a really good reason to use global (or window for that matter), just define the array (and other variables) with var or let.

let arr = [];
let id = 12;

for (let i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

Upvotes: 7

Kevin Jantzer
Kevin Jantzer

Reputation: 9451

I believe global is the root of your issue. It works when in the browser and using window

window.arr = [];
var id = 12;

for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

However, it is better to not set directly to the window and instead use var arr = [] or let arr = []

Upvotes: 2

Related Questions