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 回答