What is wrong with this javascript object?

I think it is pretty clear what I want to do here:

var viewnames = {};
viewnames['region-a'] = "Region A";
viewnames['region-b'] = "Region B, partial";
viewnames['region-c'] = "Region C";

function loadView(view_name) {
    alert('view_name: ' + view_name);
    alert('viewname: ' + viewnames.view_name);
    document.getElementById("viewtitle").innerText = view_name;
}

But if I call it using view_namehow region-a, the warning tells viewnames.view_nameundefined. What is the problem?

+3
source share
3 answers

You must use viewnames[view_name]inside your functionloadView

+8
source

You need to index it by name, for example. viewnames[view_name]

+1
source

Access it using the associative array index ( viewnames[view_name]). Please do NOT use construct eval( eval("var tmp = viewnames." + view_name + ";")).

0
source

Source: https://habr.com/ru/post/1768296/


All Articles