2011-03-12 3 views
1

プロトタイプを使用して配列内のキーを設定解除するのに問題があります(これはおそらく一般的なjavascriptの質問です)。私のカスタム・プロトタイプ・クラス:配列内の特定のIDを削除する方法を見つけ出すアレイに追加javascriptの配列からインデックスを削除します(プロトタイプフレームワークを使用し、クラス内で)

initialize: function(selector) { 
    this.selected = []; 
    this.selectcount = 0; 
}, 
addSelected: function(value) { 
    this.selected.push(value); 
    this.selectcount++; 
}, 
removeSelected: function(value) { 
    delete this.selected[value]; 
    this.selectcount--; 
}, 

が正常に動作しますが、私は私の人生のためにカント(値は、それがに追加され、特定のIDを参照しています選択された配列、removeSelectedがクリックされたときに配列から同じ値を削除する必要があります。) - 私も試しました

this.selected.splice(value, 1); 

しかし、それはどちらかの仕事をしませんでした。私は基本的に見ているか、PHPのunset()のequivelentです。

私は何が欠けているかについての助けを大いに感謝します。

ありがとうございます!

答えて

3

あなたはsplice()で正しいトラックにいますが、値そのものではなく配列の値のインデックスに渡す必要があります。値が配列に存在しない場合

var index = this.selected.indexOf(value); 
if (index !== -1) { 
    this.selected.splice(index, 1); 
    this.selectcount--; 
} 

indexOf()リターン-1:

indexOf()がこのために使用する方法です。

古いバージョンのブラウザではArray.indexOf()はサポートされていませんが、Prototype.jsで使用すると安全です。

関連する問題