> var dual = new Array;
> dual=[voter,thisID];
第割り当ては最初の割り当てが無用行う、本来デュアルに割り当てられた配列を置き換えます。
var dual = [voter, thisID];
をしかし有権者とデュアルは、以前の変数として宣言された、または作成されている場合にのみ:それは書くことができます。以上のように
> var matrix = new Array;
> matrix[dual]=voteint; //this works..
、マトリックスに最初割り当ては冗長です。その後、
var voter = 'foo';
var thisID = 'baz';
var dual = [foo, baz];
matrix[dual] = voteint;
と同等です:
それあなたが書いたので、もし、dual.toString()
ある行列にプロパティを割り当てることで、 "作品"
matrix['foo,baz'] = voteing;
の場合voteintには以前の値が割り当てられています。
が、私は簡単にいずれかまたは両方のキー(配列)の要素によって値 にアクセスしたいと思います:ワイルドカードを除く
> matrix[*,thisID])=answer;
は、 右この方法では存在しないのですか?
この文脈にはありません。
1行うことができます...
行列[有権者+ + thisID ''] = voteint。
.
がカンマに置き換えられた場合は、そうです。
と 正規表現は '。'の前後で一致します。 には、より良い/より簡単な方法がありますか?
オブジェクトが示されている配列を使用することは悪い習慣と考えられます。ここでオブジェクトを使用する方がよいでしょう。
for..inを使用してオブジェクトのプロパティを反復して、各プロパティ名をテストして、目的のプロパティ名を見つけることが妥当なオプションです。継承された列挙可能なプロパティを除外するには、hasOwnPropertyテストも含める必要があります。
あなたができることは、すべての行列要素を反復し、それがセレクタと一致するかどうかをチェックする関数を作成することです。これは、すべての一致した要素のセットを返します。 – pimvdb
本当に、うまくいくでしょう。私はパフォーマンスが早過ぎるのを心配していましたし、ネイティブなやり方があることを望んでいました。 – heorling