this.toggle1row = function(obj) {
        for(var i = 0;i < ids.length;i ++){
            if(obj.id == ids[i]){
                ids.remove(i);
                return ;
            }
        }
        ids[ids.length] = obj.id;
    }

解决方案 »

  1.   


    this.toggle1row = function(obj) {
            var temp_array = [];
            for(var i = 0;i < ids.length;i ++){
                if(obj.id !== ids[i]){
                    temp_array.push(ids[i]);
                }
            return temp_array;
        }
    这样不就可以了.
      

  2.   


     var arr = [1,2,3];  var toggle1row = function(obj) {
            
            for(var i = 0;i < arr.length;i++){
                if(obj.id == arr[i]){alert(i)
                    arr.splice(i,1);
    return;
                }
    }
    arr.push(obj.id);
    }toggle1row({id:1});
    alert(arr.toString())
      

  3.   

    [code=BatchFile]this.toggle1row = function(obj) { var temp_array = []; for(var i = 0;i < ids.length;i ++){ if(obj.id !== ids[i]){ temp_array.push(ids[i]); } return temp_array; }[/code]
      

  4.   

    谢谢大家的回答
    to:vvviop & luojihaidao
    用你们的方法做出来了
    一旦遇到一个相同的就remove,函数就会退出,
    如果后面还有和obj.id相同的话
    我就需要再写个去除array中重复元素的方法
    按道理这里不会出现重复元素
    感觉没有去重复元素的必要
    但还是有点悬,呵呵to:xiongzhijian & rjzou2006
    你们俩的方法貌似一样,但好像不能实现我的要求额
    遇到相同的就删除,不同的就加入谢谢大家,晚上给分
      

  5.   


    this.toggle1row = function(obj) { var have = 0; for(var i = 0;i < ids.length;i ++){ if(obj.id == ids[i]){ ids.remove(i); have=1; } } 
    if(have==1) ids[ids.length] = obj.id; }
      

  6.   

    错了this.toggle1row = function(obj) { 
        var have = 0;
        for(var i = 0;i < ids.length;i ++){
           if(obj.id == ids[i]){ ids.remove(i); have=1; }
        }
        if(have==0) ids[ids.length] = obj.id;
    }