Мой полный код:
jQuery.extend({
combinationCheck: function (p1position) {
var Combination = [1, 2, 3, 4, 5, 6, 7, 8];
Combination[0] = [1, 2, 3];
Combination[1] = [4, 5, 6];
Combination[2] = [7, 8, 9];
Combination[3] = [1, 4, 7];
Combination[4] = [2, 5, 8];
Combination[5] = [4, 6, 8];
Combination[6] = [1, 5, 9];
Combination[7] = [3, 5, 7];
$.each(p1position, function (index, value) {
var num = value;
if ($.inArray(String(value), Combination[1]) != '-1') {
alert("there");
}
else {
alert("not there");
}
});
});
так это работает. Если бы я установил число до 5, он оповещает «есть», а для 8 -> «не существует». , но проблема в том, что у меня есть другой массив.
p1position = [1,5];
и пройти через массив ..
$.each(p1position,function(index,value){
var num = value;
//then call the jQuery.inArray function as written above, it always return not there. even though 5 is in the Combination[1] array.
});
Я так растерялся, чтобы пытаться решить эту проблему в течение нескольких часов.
Почему во имя бога вы сравнивая результат 'inArray' на ** строки ** ?! –
Кроме того, зачем инициализировать массив со значениями, которые вы собираетесь переписать сразу после этого? –
потому что я программирую TicTacToe (против ПК). там 1-е место игроков будет сохранено в массиве. и элементы в этом массиве будут проверяться с помощью комбинации. затем я беру комбинацию, программирую ее, так что ПК отвечает и играет логически. –