ASP.NET有以下一个JS函数:var ID=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var NameValue = { "A": 0, "B": 1, "C": 2, "D": 3, "E": 4, "F": 5, "G": 6, "H": 7, "I": 8, "J": 9, "L": 10 };
function deleteElementByArguments() {
    var str = ID.join(',');
    var searchIndex;
    for (var i = 0; i < arguments.length; i++) {
        searchIndex = str.indexOf(arguments[i]);
        if (searchIndex != "-1") {
            str.replace(/arguments[i]/ig, "");//此处有问题
        }
    }    
    return str.split(',');//此处有问题
}
var value = deleteElementByArguments(NameValue.A, NameValue.C);
//期望此时的value为[1, 3, 4, 5, 6, 7, 8, 9, 10]请问如何修改我这个deleteElementByArguments函数,实现这个需求?谢谢!

解决方案 »

  1.   


    var ID=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    var NameValue = { "A": 0, "B": 1, "C": 2, "D": 3, "E": 4, "F": 5, "G": 6, "H": 7, "I": 8, "J": 9, "L": 10 };
    function deleteElementByArguments() {
        var str = ID.join(',');
        var searchIndex;
        for (var i = 0; i < arguments.length; i++) {
            var reg=new RegExp(arguments[i]+',?','gi');
            searchIndex = str.indexOf(arguments[i]);
            if (searchIndex != "-1") {
                str=str.replace(reg, "");//此处有问题
            }
        }    
        return str.split(',');//此处有问题
    }
    var value = deleteElementByArguments(NameValue.A, NameValue.C);alert(value);
      

  2.   


    好像不能用全局匹配吧? var reg=new RegExp(arguments[i]+',?','gi');
    var reg=new RegExp(arguments[i]+',?',' i');
      

  3.   


    目前没有ID重复的情况,是唯一的~
    如果有这样的情况,请教你的高见!JS还用得不熟
      

  4.   


    var ID=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
    //ID可能持续到200,这样不知算不算重复,比如1,11,12中的1,13中的1,……