MarisP
MarisP

Reputation: 987

Displaying array elements using JavaScript

I'm trying to display elements of a JavaScript array. Code:

var name = ["one" , "two"];
window.onload = function(){
document.getElementById('MinamaisVards').innerHTML=name[1];
}

Can anyone tell me why does it display the letter "n" instead of the second element of array? I don't understand where the problem is.

Upvotes: 5

Views: 7332

Answers (2)

RN Kushwaha
RN Kushwaha

Reputation: 2136

The problem is in var name as its a reserved word, use names instead.

var name = ["one" , "two"];
 window.onload = function(){
  document.getElementById('MinamaisVards').innerHTML=name[1];
 }

should be

var names = ["one" , "two"];
window.onload = function(){
  document.getElementById('MinamaisVards').innerHTML=names[1];
}

Upvotes: 3

adeneo
adeneo

Reputation: 318182

There already is a global with the name name, it's window.name, and it only accepts strings, so when you do

var name = ["one" , "two"];

in the global scope, and you get it back

console.log( name );

you get

"one, two"

and it's of type string, so name[1] is "n", the second character in that string.
This is because what you're really setting and getting is window.name, and it does not accept an array, so it runs toString() on whatever you pass it.

Change the variable name to something that isn't already in use

Upvotes: 14

Related Questions