我想在一个页面的function里完成如下逻辑:var a = "12,13,14";//格式是这样,而数字是动态取到的
var b = "";//格式一致,数字也是动态取到的
//现在我希望可以比较这两个变量,将b里面和a中重复的数字去掉就可以了,格式不变,不能多逗号

解决方案 »

  1.   

    先把a和b 弄到数组里,循环比较a数组和b数组的值,相同则干掉,最后再转化成"12,13,14"字符串形式
      

  2.   

    a和b是2个字符串,从网页上拿到后就是那个格式的了,如果要先一个一个挑出来变成数字,再比较,太麻烦了吧,能不能更简单点呢?这是个function,不想弄的太复杂
      

  3.   

    import java.util.*;public class MyString {
    public static void main(String[] args) {
    String a = "12,13,14";
    String b = "13,16,17";
    MyString ms = new MyString();
    List<String> aList = ms.changeStringToList(a,",");
    List<String> bList = ms.changeStringToList(b,",");

    for(String s : bList)
    if(!aList.contains(s))
    aList.add(s);

    StringBuffer sb = new StringBuffer();
    for(String as : aList) {
    sb.append(as)
      .append(",");
    }

    String result = sb.toString();
    result = result.substring(0,result.length()-1);
    System.out.println(result);

    }

    private List<String> changeStringToList(String source,String regex) {
    ArrayList<String> regList = new ArrayList<String>();
    String[] toArray = source.split(regex);
    for(String s : toArray) {
    if(!regList.contains(s))
    regList.add(s);
    }
    return regList;
    }
    }
      

  4.   

    var temp="";
    var compareAfter="";
    你只接用循环去比较 两个 循环:
    //这是比较变量a和变量b比较后的a
     for(int i=0;i<a.length();i++){
                  temp=a.substring(i;i+1);
          for(int j=0;j<b.length();j++){
             if(!temp.equals(b.substring(i;i+1))){
                compareAfter+=temp;
              }
         }
     }
    变量B和变量A差不多做法
    本人还是新手;请指教
      

  5.   

    var temp="";
    var compareAfter="";
    你只接用循环去比较 两个 循环:
    //这是比较变量a和变量b比较后的a
     for(int i=0;i<a.length();i++){
                  temp=a.substring(i;i+1);
          for(int j=0;j<b.length();j++){
             if(!temp.equals(b.substring(i;i+1))){
                compareAfter+=temp;
              }
         }
     }
    变量B和变量A差不多做法
    本人还是新手;请指教
      

  6.   

    8L的帅锅看见LZ是写在JS里面的额
      

  7.   

    我觉得用栈做,要是b在a就pop,不在就push
      

  8.   


    var a="12,13,14,15";
    var b="12,14,11";
    //去掉a中与b重复的元素,
    function removeDuplicate(a, b){
    var array_a=a.split(",");
    var array_b=b.split(",");
    var obj={};
    for(var i=0;i<array_a.length;i++)
    obj[array_a[i]]=true;
    for(var j=0;j<array_b.length;j++)
    if(obj[array_b[j]])
    obj[array_b[j]]^=true;
    var first=true;
    var tmp="";
    for(var p in obj){
    if(!obj[p])
    continue;
    if(first){
    tmp+=p;
    first=false;
    }else{
    tmp+=","+p;
    }
    }
    return tmp;
    }
    alert(removeDuplicate(a,b));//13,15
    alert(removeDuplicate(b,a));//11
      

  9.   


    var arr_a=a.split(",");
    var arr_b=b.split(",");
    var str = "";
    for(var i=0;i<arr_b.length;i++){
        for(var j=0;i<arr_a.length;j++){
            if(arr_b[i] == arr_a[j]){
               continue; 
            }
            str+=arr_b[i] + ",";
        }
    }
    //去逗号
    str = str.substring(0,str.length-1);大概就这意思
      

  10.   

    OK!<html>
    <head>
    <script>
    var aa = "0,1,2,3,4,5,6,0,12";
    var bb="1,3,5,9,0"
    var arr_a=aa.split(",");
    var arr_b=bb.split(",");
    var str = "";label:
    for(var a in arr_a){
        
        for(var b in arr_b){
            if(arr_a[a] == arr_b[b]){
               continue label; 
            }
           
        }
     
     str+=arr_a[a]  + ",";
    }
    //去逗号
    str = str.substring(0,str.length-1);
    alert(str);
    </script></head><body></body></html>