0

javascriptを使用してCSVテーブル/データセット内のパターンを検索するより良い方法について、誰かが提案してもらえますか?

var dataset= [[0, 0, 0], [0, 1, 1], [0, 1, 1]];
var pattern = [[0, 0, 0], [0, 1, 1], [0, 1, 1]];
arrex(dataset, pattern, 0, 0);

arrex = function(dataset, pattern, row, column) {
  if(dataset[row][column] == pattern[row][column] || patern[row][column] == "_") { // _ is the dont care case
    if(dataset[row].length-1 == column && dataset.length-1 == row){ 
      return true; // final case everything matched!!
    } else if (dataset[row].length > column+1) {
      return arrex(dataset, pattern, row, column+1); 
    } else {
      return arrex(dataset, pattern, row+1, 0); // check next row
    }
  } else {
    return false;
  }
}

どんな提案でも素晴らしいでしょう...配列を文字列に変換してから文字列比較を行うことに特に興味があります。

4

1 に答える 1

1

パターンがデータセットと同じサイズで、0、1、または「_」が含まれていると仮定すると、それはワンライナーです。

var dataset= [[0, 0, 0], [0, 1, 1], [0, 1, 1]];
var pattern = [[0, 0, 0], ["_", 1, 1], [0, 1, 1]];

var match= dataset.join('').test(new RegExp('^' + pattern.join('').replace(/_/, '.') + '$'));

console.log(match);
于 2012-06-29T14:54:15.450 に答える