2011-02-04 34 views
1

私は配列を関数に渡してそれを処理したいが、恐れているが、board_ptが定義されていないというエラーが発生する。何が問題ですか?これは、コードである:javascriptの関数の引数

function set_boardPoint(board_pt,turn) 
{ 
    var no = board_pt.number-1; 
    if(board[no] != undefined) 
    { 
    board[no].row = board_pt.row; 
    board[no].col = board_pt.col; 
    board[no].x = board_pt.x; 
    board[no].y = board_pt.y; 
    board[no].value = turn; 
    board[no].number = board_pt.number; 
}else 
{ 
board.row = board_pt.row; 
    board.col = board_pt.col; 
    board.x = board_pt.x; 
    board.y = board_pt.y; 
    board.value = turn; 
    board.number = board_pt.number; 
} 
} 
+5

set_boardPointの呼び出し方法を表示できますか? –

+1

エラーメッセージに集中することをお勧めします。もしboard_ptが 'undefined'ならば、それはおそらくそれが何を意味するのかを意味します。 –

+0

var previous_boardPoint =ボード[i]; –

答えて

1

に定義されている問題はboard_ptのみ1つのアイテムを有し、これらの場合には、JSオブジェクトとしてboard_ptを知っていることですboard_ptが実際の配列の場合は、numberという名前のプロパティはありません。 lengthを意味しますか?

0

function set_boardPoint(board_pt,turn) 
{ 
    var no = board_pt.number-1; 
    board[no].row = board_pt.row; 
    board[no].col = board_pt.col; 
    board[no].x = board_pt.x; 
    board[no].y = board_pt.y; 
    board[no].value = turn; 
    board[no].number = board_pt.number; 
} 

ボードは、グローバル配列が既に

+0

アレイボード[i]にはboard [i] .row、... board [i] .numberがあり、これを次のように渡しました:previous_boardPoint = board [i];ここで、var previous_boardPoint = new Array(); –

+0

ok私は、あなたが関数にオブジェクトを渡していると言っているが、それでもboard_ptは定義されていないと言います。実際にboard []はオブジェクトの配列です。 –

0

ご意見から、previous_boardPointを配列として定義する必要があります。 javascriptで配列を宣言するには、コードに - var previous_boardPoint = [];が必要です。また、(あなたがいずれかを持っている場合)などprevious_boardPoint[0] = val1; previous_boarPoint[1] = val2;よう

を定義し、各要素を持っているこれらの事はあなたのコードに含まれていない場合は、すべての可能性が高い可能性では、あなたはあなたの関数で未定義としてset_boardPointboard_ptを取得します。