Javascript 如何比较两个数组并打印选中复选框的常见数据和未选中复选框的不常见数据?

Javascript 如何比较两个数组并打印选中复选框的常见数据和未选中复选框的不常见数据?,javascript,Javascript,我有两个数组 var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”]; var arr2=[“苹果”、“橘子”、“猕猴桃”]; 现在我想比较这两个数组并打印“apple”、“orange”、“kiwi”,即两个数组之间的常用词以及选中的复选框,其余的词则没有选中复选框。 我可以检索和显示常用元素,但不能显示不常用元素,复选框未选中。请帮忙 函数显示列表() { var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”]; var arr2

我有两个数组 var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”]; var arr2=[“苹果”、“橘子”、“猕猴桃”]; 现在我想比较这两个数组并打印“apple”、“orange”、“kiwi”,即两个数组之间的常用词以及选中的复选框,其余的词则没有选中复选框。 我可以检索和显示常用元素,但不能显示不常用元素,复选框未选中。请帮忙

函数显示列表()
{
var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”];
var arr2=[“苹果”、“橘子”、“猕猴桃”];
var数据;
var输出=”;
对于(变量i=0;i
'; document.getElementById(“demo2”).innerHTML=输出; } } } }
点击我

创建一个函数来检查当前值是否存在于另一个数组中,如果它存在,则检查它,否则不检查

函数数组(项目,数组){
for(数组中的变量i){
if(数组[i]==项)
返回true;
}
返回false;
}
函数displayList(){
var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”];
var arr2=[“苹果”、“橘子”、“猕猴桃”];
var数据;
var输出=”;
对于(变量i=0;i
'; document.getElementById(“demo2”).innerHTML=输出; }否则{ arrData=arr1[i]; 输出+=''+''+arrData+'+'

'; document.getElementById(“demo2”).innerHTML=输出; } } }
点击我

您可以用这种方式完成,但这取决于您的需求

基本上,您使用一个循环而不是两个,若arr1的元素存在于arr2中,则选中,否则取消选中

document.getElementById(“clickMe”).onclick=displayList;
函数displayList(){
var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”];
var arr2=[“苹果”、“橘子”、“猕猴桃”];
var数据;
var输出=”;
对于(变量i=0;i
'; document.getElementById(“demo2”).innerHTML=输出; } 否则{ arrData=arr1[i]; 输出+=''+''+arrData+'+'

'; document.getElementById(“demo2”).innerHTML=输出; } } } Array.prototype.contains=函数(元素){ 返回此。indexOf(element)>-1; };
点击我

您可以使用indexOf检查数组元素是否与第二个数组匹配,而不是直接使用两个循环

for (var i = 0; i < arr1.length; i++) {
    if(arr2.indexOf(arr[i]) > -1) {
        arrData=arr2[j];
        output+= '<input type="checkbox" value='+arrData+' name="box2" checked >' + ' ' + arrData+' '+'<br><br>';
    } else {
        arrData=arr2[j];
        output+= '<input type="checkbox" value='+arrData+' name="box2" >' + ' ' + arrData+' '+'<br><br>';
    }
    document.getElementById("demo2").innerHTML=output;
}
for(变量i=0;i-1){
arrData=arr2[j];
输出+=''+''+arrData+'+'

'; }否则{ arrData=arr2[j]; 输出+=''+''+arrData+'+'

'; } document.getElementById(“demo2”).innerHTML=输出; }
您可以像这样
合并它们,然后通过检查
通用
数组来显示项目

函数显示列表()
{
var arr1=[“苹果”、“香蕉”、“葡萄”、“橙子”、“猕猴桃”、“番石榴”];
var arr2=[“苹果”、“橘子”、“猕猴桃”];
var arrData,common={},output=“”;
//参考:http://stackoverflow.com/a/1584377/7549867
函数arrayUnique(数组){
var a=array.concat();

对于(var i=0;我认为这个问题已经在10分钟前得到了回答。