我正在做這個項目,試圖重現謝林的分離模型。我有一個函數(在下面)正在測試以查看與當前正在測試的單元格相比,陣列的四個直接相鄰的單元格是相同還是不同還是空的。Javascript測試數組的角點(Grid)
對於陣列中的每個單元格,都有四個可能的點需要測試。但在角落和側面,顯然你不能測試超出界限的空間。所以在這個函數中,如果它找到了一個越界空間,那麼它會減少單元周圍的數字總數。然而,它一直崩潰告訴我,我有一個未捕獲的引用錯誤:無法讀取未定義的屬性'0'。我不知道爲什麼它會崩潰。
此代碼的最後一行是商品(相似單元格)的數量和它周圍的單元格總數(空單元格不計數),並獲得相似的百分比。
任何幫助將不勝感激告訴我爲什麼它可能會崩潰,並給我一個錯誤?謝謝!
model.Test = function(i, j)
{
var numberToTest= 4;
var goods= 0;
if ((i - 1) >= 0)
{
if (model.BoardArray[i-1][j] != "E")
{
if (model.BoardArray[i][j] == model.BoardArray[i-1][j])
{
goods++;
}
}
else
{
numberToTest--;
}
}
else
{
numberToTest--;
}
if((i + 1) < $("#BoardSizeValue").val())
{
if (model.BoardArray[i+1][j] != "E")
{
if (model.BoardArray[i][j] == model.BoardArray[i+1][j])
{
goods++;
}
}
else
{
numberToTest--;
}
}
else
{
numberToTest--;
}
if ((j - 1) >= 0)
{
if (model.BoardArray[i][j-1] != "E")
{
if (model.BoardArray[i][j] == model.BoardArray[i][j-1])
{
goods++;
}
}
else
{
numberToTest--;
}
}
else
{
numberToTest--;
}
if ((j + 1) < $("#BoardSizeValue").val())
{
if (model.BoardArray[i][j+1] != "E")
{
if (model.BoardArray[i][j] == model.BoardArray[i][j+1])
{
goods++;
}
}
else
{
numberToTest--;
}
}
else
{
numberToTest--;
}
var similar = $("#SimilarSlider").val()/100;
if (numberToTest == 0)
{
return false;
}
else
{
var needed = goods/numberToTest;
if (needed >= similar)
{
return false;
}
else
{
return true;
}
}
}
該部分代碼中存在一些輕微錯誤。我有滑塊給我的數組大小,有一個錯誤 – 2013-02-13 04:57:53