在nodejs中从set/list生成有序对

Generate ordered pairs from a set/list, in nodejs

我想从 NodeJS

中的 list/set 项生成有序对

示例:我有一个 list/set 项目:[a, b, c]

生成有序对:(a,b) , (a,c) , (b,a) , (b,c) , (c,a) , (c,b)

我如何在 NodeJS 中轻松地做到这一点?

Node.js是JavaScript,所以这里有一个方法:

var _set = ['a','b','c'];
var _pairs = [];
for (var i=0; i<_set.length; i++){
        var selectedNow = _set[i];
    for (var j=0; j<_set.length;j++){
       if(selectedNow == _set[j]){/*ignore*/}
       else{
            var combination = selectedNow + _set[j];
          _pairs.push(combination);
       }
    }
}
console.log(_pairs);

在此示例中,控制台将打印以下数组:

[ "ab", "ac", "ba", "bc", "ca", "cb" ]

一个有效的 fiddle 示例,如果您想尝试一下: https://jsfiddle.net/hap2jfy4/

var list = [a, b, c];

var pairs = [];

for (var i = 0; i < list.length; i++) {
    for (var j = 0; j < list.length; j++) {
        if (i == j) {
            continue;
        }
        pairs.push([
          list[i],
          list[j]
        ]);
    }
    pairs.push(pair);
}

生成一个数组对数组,因此 pairs[0] 是您的 (a, b) 数组。

  • 对[0][0]是
  • 对[0][1]是b

不那么笨重:

let set = ["a", "b", "c"];
let pairs = [];
set.forEach(function(x){
    set.forEach(function(y) {
        if (x !== y) {
            pairs.push([x,y])
        }
    })
})