为了账号安全,请及时绑定邮箱和手机立即绑定

请问这个筛选重复数据的脚本问题在哪儿?

请问这个筛选重复数据的脚本问题在哪儿?

给我一杯咖啡 2016-10-27 18:55:09
   <script type="text/javascript">         $(function () {             var arr = [1, 1, 2, 2, 3, 3];             var result = [], isRepeated;             for (var i = 0, len = arr.length; i < len; i++) {                 isRepeated = false;                 for (var j = 0, len = result.length; j < len; j++) {                     if (arr[i] == result[j]) {                         isRepeated = true;                         break;                     }                 }                 if (!isRepeated) {                     result.push(arr[i]);                 }             }             alert(result);         })     </script>如上是脚本最后可以弹出 1,2,3的效果,就是筛选重复数据。
查看完整描述

3 回答

已采纳
?
千秋此意

TA贡献158条经验 获得超187个赞


第7行改成:

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

这样每次循环 result.length 的值才会更新

你原来那样写只是把初使的 result.length 赋值给 len(也就是len=0),所以你外面i循环完也不会走一次j循环

查看完整回答
1 反对 回复 2016-10-27
?
Tobey_滔

TA贡献242条经验 获得超128个赞

<script type="text/javascript">
    $(function () {
        var arr = [1, 1, 2, 2, 3, 3];
        var result = [], isRepeated;
        for (var i = 0, len = arr.length; i < len; i++) {
            isRepeated = false;
            for (var j = 0; j < result.length; j++) {
                if (arr[i] == result[j]) {
                    isRepeated = true;
                    break;
                }
            }
            if (!isRepeated) {
                result.push(arr[i]);
            }
        }
        alert(result);
    })
</script>

你错误的原因是第二个循环的条件...因为第一个循环已经用了len..第二个循环再次给len赋值...导致出错了

查看完整回答
反对 回复 2016-10-27
  • 3 回答
  • 0 关注
  • 1606 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信