Показать сообщение отдельно
  #3 (permalink)  
Старый 12.10.2014, 20:08
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Сообщение от Ruslan_xDD Посмотреть сообщение
var test =  [{locale:"en_US"}, {locale:"en_GB"}, {locale:"ru"}];

function getArrayLanguages(data) {
    var dataString = JSON.stringify(data),
        elem, i,
        isOverOne = function(prop) {
            prop = '"locale":"' + prop + '(_\\w+)?"';
            return new RegExp(prop + '.+' + prop).test(dataString);
        };
    for(i in data) {
        elem = data[i]; //Записываем объект языка в переменную элем
        if(isOverOne(elem.locale.match(/^([a-z]+)_?/)[1])) {
            //Если более одного элемента с префиксом текущего языка
        }
        else {
            //Если только один элемент
        }
    }
}
      
getArrayLanguages(test);


Можно попробовать преобразовать объект в строку и через регулярку искать совпадения на "более одного".
То есть в if/else мне нужно добавить
data[i] = RC.Lang.Common.LANGUAGE_LABELS[data[i]]

и в else
data[i] = RC.Lang.Common.LANGUAGE_LIST[data[i]]

?
Ответить с цитированием