Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding string-key in Javascript array

1) I have this Javascript array:

lang=new Array();
lang["sq"]="Albanian";
lang["ar"]="Arabic";
lang["en"]="English";
lang["ro"]="Romanian";
lang["ru"]="Russian";

2) In some other process, there is a returned value in a variable:

result.detectedSourceLanguage = 'en';

3) Now, i want to print the language full name by doing this:

alert(lang[result.detectedSourceLanguage]);

The dialog displays: undefined

Any ideas?

BTW: im using JQuery, so JQuery solutions are welcomed.

like image 831
Andres SK Avatar asked Sep 06 '09 02:09

Andres SK


2 Answers

An Array uses integer indexes. You probably want an Object, which supports string indexes:

lang=new Object();
lang["sq"]="Albanian";
lang["ar"]="Arabic";
lang["en"]="English";
lang["ro"]="Romanian";
lang["ru"]="Russian";

// or

lang = {
    'sq': 'Albanian',
    'ar': 'Arabic',
    // ...
    'ru': 'Russian'
};

(The latter example is probably better as more JS programmers would be happy with it.)

like image 59
strager Avatar answered Oct 20 '22 01:10

strager


This script generates a message box (checked in IE & FF) that says "English":

lang = new Array();
lang["sq"] = "Albanian";
lang["ar"] = "Arabic";
lang["en"] = "English";
lang["ro"] = "Romanian";
lang["ru"] = "Russian";

detectedSourceLanguage = 'en';

alert(lang[detectedSourceLanguage]);

The only problem could be the result object.

like image 40
Eran Betzalel Avatar answered Oct 20 '22 01:10

Eran Betzalel