我有一个存储模式信息的二维数组。数据可能如下所示:
function add (num) {
function adder (n) {
num += n;
return adder;
}
adder.valueOf = function(){
return num
};
adder.toString = function(){
return '' + num
};
return adder;
}
最大图案尺寸为3乘3格,但并非所有空格都必须使用。由于空白基本上意味着那里没有信息,我经常遇到两种模式结构不同但功能相同的情况。像这样:
var sum = add(1)(2)(3)(4) + 5; // results in 15
var txt = add(1)(2)(3)(4) + "hello"; // results in "10hello"
由于方向的原因,所有模式都有4种可能的表示形式。但是,有些模式如下:
var testGrid = [["blank", "red", "blank"],
/* row 2 */ ["blank", "yellow", "green"],
/* row 3 */ ["blank", "blue", "blank"]];
在3乘3网格中有8个可能的表示。
所以我有几个问题:
存储此数据的最佳方法是什么?我以为我可以将更简单的模式存储为2乘2网格,这样可以减少我对普通模式的检查量。
检查数据库中已存在的模式的最佳方法是什么?只需循环一个函数,将新创建的模式与数据库中的其他每个条目进行比较? (顺便说一句,我正在使用mongoDB。)
答案 0 :(得分:0)
一种选择是使用数字(十六进制/十进制)来编码颜色和存储。如果是blank = 0, red = 1, green = 2, yellow = 3
然后
["blank", "yellow", "green"] = "032"