我正在尝试创建一个函数,该函数接受一个数组并创建一对数组,例如一对数组[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