Mam 3 tablicy, chcę sprawdzić, czy istnieje każdy element podwodnika w kapitale - wtedy powinien zwrócić prawdziwe.

Próbowałem tego, ale zwraca się tylko wtedy, gdy główka zawierająca cały element tablicy sub.

My JS:

var sub1 = ["0", "10"];
var sub2 = ["18", "3", "13", "4"];
var mainArr = ["0", "1", "5", "8", "9", "10"];
if (containsChk(sub1, mainArr)) {
    alert('yes');
} else {
    alert('no');
}

function containsChk(sub, main) {
    for (var i = 0, len = sub.length; i < len; i++) {
        if ($.inArray(sub[i], main) == -1) return false;
    }
    return true;
}

Jsfiddle.

0
Amit Kumar 12 sierpień 2014, 13:28

2 odpowiedzi

Najlepsza odpowiedź

Powinieneś użyć array.indexOf() (http://www.w3schools.com/jsref/jsref_indexof_array .Sp).

for (var i = 0; i < sub1.length; i++)
   if (mainArray.indexOf(sub1[i]) != -1)
      return true;
return false;
5
EoiFirst 12 sierpień 2014, 09:33

Próbować

  var sub1 = ["0", "10"];
var sub2 = ["18", "3", "13", "4"];
var mainArr = ["0", "1", "5", "8", "9", "10"];
if (containsChk(sub1, sub2, mainArr)) {
    alert('yes');
} else {
    alert('no');
}


function containsChk(sub, sub2, main) {
    var isIn = false;
    for (var i = 0, len = sub.length; i < len; i++) {
        if ($.inArray(sub[i], main) != -1) {
            isIn = true;
            break;
        }
    }
    if (!isIn) {
        for (var i = 0, len = sub2.length; i < len; i++) {
            if ($.inArray(sub2[i], main) != -1) {
                 isIn = true;
                 break;
            }
        }
    }


    return isIn;
}

PRÓBNY

0
Balachandran 12 sierpień 2014, 09:43