问:一个连续元素的乱序数组,如:1,2,3...100,如果我随意去掉一个元素,问怎样通过简单的算法得到我去除的是哪个元素?

解决方案 »

  1.   

    var i = [1,2,3,4...];
    i.sort();
    for(var tmp in i) {
      if(tmp+rules != i[tmp]) {
          //就是你
      }
    }
      

  2.   


    问题:1.sort()排序函数用法有问题吧?
          2.rules是什么?
      

  3.   

    rules 是你定义的规则
    sort方法也可以随你定制。
      

  4.   

    唉.
    用JQuery:
    返回值:NumberjQuery.inArray(value, array)
    概述
    确定第一个参数在数组中的位置,从0开始计数(如果没有找到则返回 -1 )。
    参数
    valueAny用于在数组中查找是否存在arrayArray待处理数组。示例var arr = [ 4, "Pete", 8, "John" ];
    jQuery.inArray("John", arr);  //3
    jQuery.inArray(4, arr);  //0
    jQuery.inArray("David", arr);  //-1
      

  5.   

    这个高效,但是代价是用空间换时间,但对JS来说无所谓了。var a=[1,2,...100] var b=[]; for(var i in a)
    {
    b[a[i]]=a[i];
    }

    for(var i=1;i<=100;i++)
    {
    if(!b[i])
    {
    alert(i);//拿走的数
    break;
    }
    }
      

  6.   

    你是用什么方法来删除数组中的元素的?如果是用splice,那直接a= arr.splice(1,1)就可以了,splice返回的就是你删除的那个元素。
      

  7.   

    一般而言,可以把问题转换为求原数组与随意去掉元素后数组的差集,该差集就是你去除的是哪些元素。<script type=text/javascript>
    Array.prototype.differenc = function(arr) {
          var rel = [], hsh = {};
          var arr = this.concat(arr||[]);
          for (var i = 0; arr[i]; i ++) {
              hsh[arr[i]] = hsh[arr[i]] ? 0 : !0;
          }
          for (var o in hsh) hsh[o]&&rel.push(o);
          return rel
    }var x = [1, 2, 3, 4, 5, 6]; // 原数组
    var y = [1, 2, 3, 4];       // 原数组随意去掉元素后alert(x.differenc(y))       // 你去掉的元素
    </script>
      

  8.   

    box sort对这个需求来说没那个必要
    首先js的sort函数效率不低了。
    其次用js如果对性能瓶颈要求这么高的话,可能需要考虑下转到后台去做这个事了
      

  9.   


    var n = 100; // 最大数
    var l = [1, 2, 3, .... 4]; // 无序的被抽取的数组
    var s = 0;
    for (var i = 0; i < l.lenght; i++) {
        s += l[i];
    }
    alert((n + 1) / 2 * n - s); // 输出结果
      

  10.   


    大叔
    lenght => length
    没测试吧
      

  11.   

    如果不考虑普适性,就LZ的题意,还是12#的思路简洁明了。var arr0 = [5, 10, 8, 4, 1, 6, 7, 3, 9, 2];
    var arr1 = [1, 6, 9, 4, 5, 2, 8, 3, 10];alert(eval(arr0.join("+")) - eval(arr1.join("+")))
      

  12.   

    BWT:
    我感到疑虑的是LZ所云:“一个连续元素的乱序数组”。“连续元素”是单指连续的数字(1、2、3 ...),还是包括连续的字母(a、b、c ...)?