Как сделать проверку по шаблону в JavaScript?

Всем привет.
Нужна помощь. Посмотрите пример:

var listResult = new Array(
  [x,x,x,0,0,0,0,0,0],
  [0,0,0,x,x,x,0,0,0],
  [0,0,0,0,0,0,x,x,x],
  [x,0,0,x,0,0,0,x,0],
  [0,x,0,0,x,0,0,x,0],
  [0,0,x,0,0,x,0,0,x],
  [x,0,0,0,x,0,0,0,x],
  [0,0,x,0,x,0,x,0,0]
);

var result = [0,2,0,1,1,1,0,2,2]; // == listResult[1]
var result2 = [1,0,2,1,2,0,2,0,1]; // == listResult[7]


Нужно сделать проверку на вхождение result или result2 в listResult.
Например result должен соответствовал listResult[1], а result2 соответствовал listResult[7] ?

4917590.jpg
  • Вопрос задан
  • 2820 просмотров
Решения вопроса 1
Какой у вас принцип проверки? Как [0,2,0,1,1,1,0,2,2] соответствует [0,0,0,x,x,x,0,0,0]?

0 - любой символ x - одинаковые?

Если шаблоны не меняются - запишите правила кодом - a[3]==a[4] && a[4]==a[5]. Если меняются, то вам придется пройти по массиву, выбрать все индексы с x и сравнить все значения целевого массива. Можно "прекомпилировать" правила в функции, если требуется чтобы проверка была оптимизирована. Для этого генерируете текст функции (прямо строку if(a[3]==a[4] && a[4]==a[5]) return true; else return false; и создаете на её основе функцию: javascript.ru/Function
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы