Loop optimization and cleanup

Reduced the complexity of search loops
And some cleanup.

Change-Id: I772b02abd14d50ad1965e933d8dbb6d3eb4e0b1d
This commit is contained in:
Santhosh Thottingal
2012-07-25 12:20:22 +05:30
committed by Amir E. Aharoni
parent 05eb91bee3
commit af3f6ac58d
3 changed files with 57 additions and 40 deletions

View File

@@ -35,7 +35,7 @@
* @return array of strings
*/
$.uls.data.regions = function( language ) {
return $.uls.data.languages[language][1];
return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';
};
/**
@@ -169,6 +169,27 @@
return $.uls.data.languagesByScriptGroupInRegions( $.uls.data.allRegions() );
};
/**
* Get the given list of languages sorted by script.
* @param languages Array of language codes
* @return {Object} Array of languages indexed by script codes
*/
$.uls.data.languagesByScriptGroup = function( languages ) {
var languagesByScriptGroup = {}, scriptGroup, language, langScriptGroup;
for ( scriptGroup in $.uls.data.scriptgroups ) {
for ( language in languages ) {
langScriptGroup = $.uls.data.scriptGroupOfLanguage( language );
if( langScriptGroup !== scriptGroup ){
continue;
}
if ( !languagesByScriptGroup[scriptGroup] ) {
languagesByScriptGroup[scriptGroup] = [];
}
languagesByScriptGroup[scriptGroup].push( language );
}
}
return languagesByScriptGroup;
};
/**
* Returns an associative array of languages in several regions,
* grouped by script group.