Use JS native methods for array manipulations
* In mw.uls.addPreviousLanguage, jQuery.map was used for what is essentially filtering, not mapping. Filtering was used to remove one element from array. Use Array.prototype.splice instead. * In mw.uls.getFrequentLanguageList, replace: - jQuery.each with Array.prototype.forEach - jQuery.inArray with Array.prototype.indexOf - jQuery.grep with Array.prototype.filter Change-Id: Id2208b3c89e982f91f49981d18e588ae8ce3b130
This commit is contained in:
@@ -107,13 +107,15 @@
|
||||
* @since 2016.05
|
||||
*/
|
||||
mw.uls.addPreviousLanguage = function ( language ) {
|
||||
var languages = mw.uls.getPreviousLanguages();
|
||||
var languages = mw.uls.getPreviousLanguages(),
|
||||
index = languages.indexOf( language );
|
||||
|
||||
// Avoid duplicates
|
||||
languages = $.map( languages, function ( element ) {
|
||||
return element === language ? undefined : element;
|
||||
} );
|
||||
if ( index !== -1 ) {
|
||||
languages.splice( index, 1 );
|
||||
}
|
||||
languages.unshift( language );
|
||||
|
||||
mw.uls.setPreviousLanguages( languages );
|
||||
};
|
||||
|
||||
@@ -167,21 +169,17 @@
|
||||
list = list.concat( $.uls.data.getLanguagesInTerritory( countryCode ) );
|
||||
}
|
||||
|
||||
$.each( list, function ( i, v ) {
|
||||
if ( $.inArray( v, unique ) === -1 ) {
|
||||
unique.push( v );
|
||||
list.forEach( function ( lang ) {
|
||||
if ( unique.indexOf( lang ) === -1 ) {
|
||||
unique.push( lang );
|
||||
}
|
||||
} );
|
||||
|
||||
// Filter out unknown and unsupported languages
|
||||
unique = $.grep( unique, function ( langCode ) {
|
||||
unique = unique.filter( function ( langCode ) {
|
||||
// If the language is already known and defined, just use it.
|
||||
// $.uls.data.getAutonym will resolve redirects if any.
|
||||
if ( $.uls.data.getAutonym( langCode ) !== langCode ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return $.uls.data.getAutonym( langCode ) !== langCode;
|
||||
} );
|
||||
|
||||
return unique;
|
||||
|
||||
Reference in New Issue
Block a user