JS如何比较两个数组,当Arr1中等于1的元素对应Arr2中的元素也等于1时,返回true?

比较两个数组,例如

  • Arr1:[0,0,0,1,1,0,1,0,0,0]
  • Arr2:[1,0,0,1,1,1,1,0,0,0]

当Arr1中等于1的元素对应Arr2中的元素也等于1时,返回true;其他所有情况都返回false

以上情况就返回true

以下情况全返回false

  • Arr1:[0,0,1,1,1,0,1,0,0,0]
  • Arr2:[1,0,0,1,1,1,1,0,0,0]

  • Arr1:[0,0,0,1,1,1,1,0,0,0]
  • Arr2:[1,0,0,1,1,0,1,0,0,0]

    原生JS 如何判断?
var a = [0,0,0,1,1,0,1,0,0,0];
var b = [1,0,0,1,1,1,1,0,0,0];

var c = [0,0,1,1,1,0,1,0,0,0];
var d = [1,0,0,1,1,1,1,0,0,0];

var e = [0,0,0,1,1,1,1,0,0,0];
var f = [1,0,0,1,1,0,1,0,0,0];

function test(arr1,arr2){
    var flag = false;
  for(var i = 0; i < arr1.length; i ++){
        if(arr1[i]  == 1){
            if(arr2[i] != 1){
                flag = false;
                break;
            }else{
                flag = true;
            }
        }
    }
  return flag;
}

alert("a=b : " + test(a,b))
alert("c=d : " + test(c,d))
alert("e=f : " + test(e,f))

必须要强调两个数组的位置,才能确定对比为true

        var list1 =[0,0,0,1,1,1,1,0,0,0];
        var list2 =[1,0,0,1,1,0,1,0,0,0];
        list_compare(list1,list2);

        function list_compare(list1,list2) {
            var list_boolean = new Array(list1.length);
            for(var i=0;i<list1.length;i++){
                if(list1[i]==1 && list2[i]==1){
                    list_boolean[i] = true;
                }else{
                    list_boolean[i] = false;
                }
            }
            for(var i=0;i<list_boolean.length;i++){
                alert(list_boolean[i]);
            }
        }
function f(arr1,arr2) {
    for (let i = 0; i < arr1.length; i++) {
        if(arr1[i]===1&&arr2[i]!==1){
            return false
        }
    }
}