jQuery: функция проверки на наличие дубликатов для массива - PullRequest
0 голосов
/ 02 октября 2010

У меня есть глобальный массив, в котором содержатся мои css + js include, и я ищу самое простое решение для следующей проблемы:

  • функция, которая позволяет добавлять больше включений (в виде строки) - напримерaddIncludes("script1.js,script2.js,style1.css,style2.css");
  • эта функция должна автоматически фильтровать повторяющиеся записи

пример:

var myIncludes = [];

// add includes 
addIncludes("script1.js,script2.js,style1.css,style2.css");
addIncludes("script3.js,script4.js,style1.css,style2.css");

so myIncludes should be:
["script1.js","script2.js","style1.css","style2.css","script3.js","script4.js"]

Есть идеи, какой способ наиболее элегантен?ТНХ

Ответы [ 2 ]

1 голос
/ 02 октября 2010

Вы можете использовать функцию inArray, чтобы не добавлять дубликаты:

addIncludes(inc) {
  $.each(inc.split(','), function(){
    if ($.inArray(this, myIncludes) === -1) {
      myIncludes.push(this);
    }
  });
}
1 голос
/ 02 октября 2010

Это не ответ на ваш вопрос, но я надеюсь, что в любом случае это поможет.

Похоже, вы планируете загружать таблицы стилей через JQuery. Если это так, имейте в виду, что это означает, что ваши стили не будут загружены до тех пор, пока остальная часть страницы не загрузится и не отобразится. В результате ваша страница будет первоначально загружена в браузер без каких-либо стилей, а затем изменится через несколько секунд после загрузки стилей.

Вы можете получить лучший пользовательский опыт, если просто загрузите свои таблицы стилей, используя обычный метод HTML - то есть <link rel="stylesheet" type="text/css" href="style1.css"> вверху документа.

Этот момент может быть не так важен для сценариев, но я бы определенно сказал, для таблиц стилей.

Надеюсь, это поможет (даже если оно не ответит на ваш вопрос).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...