jQuery:数组的dupe检查函数

时间:2010-10-02 09:06:08

标签: jquery arrays filter

我有一个全局数组,其中包含我的css + js 我正在为以下问题寻找最简单的解决方案:

  • 允许添加更多包含(作为字符串)的函数 - 例如。 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"]

任何想法最优雅的方式是什么? THX

2 个答案:

答案 0 :(得分:1)

这不是你问题的答案,但无论如何我希望它有所帮助。

看起来你打算通过JQuery加载你的样式表。如果是这样,请记住,这意味着在页面的其余部分完成加载并显示后才会加载样式。这将导致您的页面最初在浏览器中加载而没有任何样式,然后在加载样式后几秒钟更改。

如果您只是使用普通的HTML方法加载样式表,那么您可能会获得更好的用户体验 - 即文档顶部的<link rel="stylesheet" type="text/css" href="style1.css">

对于脚本来说,这一点可能并不那么重要,但我绝对会说样式表。

希望有所帮助(即使它没有回答你的问题)。

答案 1 :(得分:1)

您可以使用inArray功能不添加重复项:

addIncludes(inc) {
  $.each(inc.split(','), function(){
    if ($.inArray(this, myIncludes) === -1) {
      myIncludes.push(this);
    }
  });
}