まだ配列に存在しない組み合わせを見つけるにはどうすればよいでしょうか?未使用の組み合わせを見つける
例えば、私は点のリストがあります:[1, 2, 4, 9]
をそして私はこのリストの不足している接続が[2,9]
で接続[[1,2], [1,4], [1,9], [2,4], [4,9]]
のリストを持っています。 1つの要件として:すべての整数はより大きな整数に接続する必要があります。
var points = [1, 2, 4, 9];
var connections = [[1,2], [1,4], [1,9], [2,4], [4,9]];
var missing = [];
for(i = 0; i < points.length; i++){
for(j = i + 1; j < points.length; j++){
var found = false;
for(var a = 0; a < connections.length; a++){
if(connections[a][0] == points[i] && connections[a][1] == points[j]){
found = true;
break;
}
}
if(!found) missing.push([points[i], points[j]]);
}
}
console.log(missing);
上記のコードは機能しますが、forループの量は私にはかなり遅いと思います。これを行うより速い方法がありますか?表示をjsfiddle
あなたのデータをソートすることが保証かいませんか? –
@TatsuyukiIshi no、接続のリストはソートされません。 –