js如何判断两个数组是否有相同的值,并把相同值隐藏

代码
//右边框数据
var right=["A101","A102"];
//左边框数据
var data=[{"text":"A仓库","value":"A101"},{"text":"测试仓库","value":"A102"}];

    var str = "";
    if(right.length == 0){
        for(let i=0; i < data.length; i++){
            str += "<option  value="+data[i].value+">" + data[i].text + "</option>"
         } 
    }else{   
    for(let j=0; j < right.length; j++){
        for(let k=0; k < data.length; k++){
                if(right[j] == data[k].value){
                                    
                }else{
                    str += "<option value="+data[k].value+">" + data[k].text + "</option>"
                }                        
        }
    }
    $("#left").html(str);


这么写会两边都出来,请教各位大神,怎么循环能让右边有值的时候左边的不显示,左边和右边value是一样的1588123786(1).png

阅读 2.8k
2 个回答

let left = data.filter(item => right.indexOf(item.value) == -1);

你定义的str变量是全局的,这样肯定是不行的,分开定义试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题