gpt4 book ai didi

javascript - 从一个数组创建一对数组导致圆形数组

转载 作者:行者123 更新时间:2023-11-30 05:43:27 25 4
gpt4 key购买 nike

我正在尝试制作一个接受数组并创建一对数组的函数例如数组 [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 对象和 native 对象之间形成的,导致内存泄漏,但我不知道这是否发生在这里。请帮忙。

error..

最佳答案

我想知道问题是否出在调试器本身。每当它引用已引用的项目时,它都会输出 [circular object Array]。

尝试制作更多的控制台消息。将最后一行替换为:

var answer = makePairs([1,2,3,4]);
for (var i = 0; i < answer.length; ++i) {
console.log("[[" + answer[i][0][0] + ", " + answer[i][0][1] + "], [" +
answer[i][1][0] + ", " + answer[i][1][1] + "]]");
}

我打赌它会打印出来。

关于javascript - 从一个数组创建一对数组导致圆形数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19436341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com