javascript代码实例教程-jQuery.unique引发一个血案

发布时间:2019-02-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-jQuery.unique引发一个血案脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 项目开发过程中,PM说系统只要在一个特定的浏览器中运行就好,但是在其他的浏览器中不能出现逻辑的错误,所以在开发过程中,前端和后台选择是Chrome浏览器,没有仔细测试Firefox和IE。但是昨天PM反映了一个bug,是浏览器兼容性bug,在Chrome浏览器下工作正常,但是在IE浏览器不报错,但是逻辑是不对的。剔除复杂的业务逻辑,代码精简如下:

 

复制代码

<htML>

    <head>

        <;meta charset="utf-8"/>

        

        <script tyPE="text/javascript" src="jquery-1.10.2.min.js"></script>

        <script type="text/javascript" src="underscore.js"></script>

    </head>

    <body>

        <input type="hidden" value="" id="tempids"/>

        <input type="text" value="" id="tempvalue"/>

        <script type="text/javascript">

        VAR arr1=$("#tempids").val().splIT(",");

        var arr2=[4,5,6];

        

        $("#tempvalue").val($.unique($.merge(arr1,arr2)).join(","));

        

        

        var selecteDFilterIds = $("#tempvalue").val();

        if (selectedFilterIds.split(",")[0] == "")

        { 

            alert("选择结果为空!"); 

        }

        else{

            alert("有数据!");

        }

        </script>

    </body>

</html>

复制代码

 

 

程序的目的,是把arr2合并到arr1中,然后对数组进行去重操作。错误就是在去重操作上,我们使用jQuery.unique()。jQuery.unique()方法在Chrome和IE浏览器中输出的结果不相同。看下面示例:

 

var temp=$.unique([1,2,3,3,2,1,4]); 

        for(var j=0;j<temp.length;j++){ 

            console.LOG(temp[j]); 

        }

 

 

在Chrome中输出结果是:4 3 2 1;但是在IE下输出的结果是:2 3 2 1 4。结果不一样。在参考网址的stack overflow有解释。不过我们用错了unique()这方法。

 

 

 

注意:删除数组中的重复元素。只处理删除DOM元素数组,而不能处理字符串或数字数组。

 

 

 

要处理字符串或数字数组,我们可以借助UnderScore.js类库里面的uniq()方法。代码如下:

 

var temp=_.uniq([1,2,3,3,2,1,4]); 

for(var j=0;j<temp.length;j++){ 

       console.log(temp[j]); 

}

 

 

输出结果在Chrome和IE下都是相同的。1,2,3,4.

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-jQuery.unique引发一个血案全部内容,希望文章能够帮你解决javascript代码实例教程-jQuery.unique引发一个血案所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。