私は現在、このように反復する配列データ構造を持っており、foo
要素の一意の各ペアを呼び出しています。
for(var i = 0; i < arr.length; i++) {
for(var j = i + 1; j < arr.length; j++) {
foo(arr[i], arr[j]);
}
}
ただし、名前で要素を簡単に追加および削除できるため、配列ではなくオブジェクトを使用したいことに気付きました。
ただし、そのようなオブジェクトを反復処理する明確な方法はわかりません。私が得ることができる最も近いものは次のとおりです。
for(i in obj) {
for(j in obj) {
foo(obj[i], obj[j]);
}
}
明らかに、これは各ペアを2回実行し、同じ要素のペアを生成します。最初のコードサンプルの配列で行うのと同じ方法で、オブジェクトを反復処理する簡単な方法はありますか?
アップデート:
jsperfでのソリューションのパフォーマンステスト。