我将尝试创建一个函数,该函数接受一个数组并创建一对数组。例如,对于一个数组
并且配对应该是这样的:
到目前为止,我的函数看起来像这样:
所以,
[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
循环处理pair
数组时,我得到了[circular object Array]
。我认为嵌套的for循环也会在pairs
上工作,但它并不起作用。我读到说,在javascript对象和本地对象之间形成循环引用会导致内存泄漏,但我不知道这里是否发生了这种情况。请帮忙看看。![error..](https://istack.dev59.com/YoJSQ.webp)