配列を取り、配列のペアを作成する関数を作成しようとしています。たとえば、[1,2,3,4]
ペアは次のようになります。
pair = [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]] ;
ペアは次のようになります。
pairs = [[[1,2],[1,3]], [[1,2],[1,4]], [[1,2],[2,3]] .... [[2,4],[3,4] ] ;
これまでのところ、私の関数は次のようになります。
function makePairs(arr) {
var l = arr.length -1 ,
pair = [];
for(var i=0; i < l ; i++ ) {
for(var j=i+1; j <= l ; j++ ) {
pair.push( [arr[i],arr[j]]) ;
}
}
// i get the desired pair by the above nested for loop...
// console.log(pair) ;
// i try to do the same nested for loop with the pair array..
// but i get [circular object Array];
var k = pair.length -1,
pairs = [] ;
for(var m=0; m < k ; m++ ) {
for(var n=m+1; n <= k ; n++ ) {
pairs.push( [pair[m],pair[n]]) ;
}
}
return pairs;
}
console.log( makePairs([1,2,3,4]) );
したがって、pair
目的のペアが得
られますが、配列で同じタイプのネストされたfor
ループを実行すると、 . ネストされた for ループも機能すると思いましたが、機能しません。javascript オブジェクトとネイティブ オブジェクトの間で循環参照が形成され、メモリ リークが発生していると読みましたが、ここで発生しているかどうかはわかりません。助けてください。pair
[circular object Array]
pairs