在nodejs

时间:2016-02-17 14:56:48

标签: javascript node.js set

我想从NodeJS中的列表/项目集生成有序对

示例:我有一个包含项目的列表/集:[a,b,c]

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

如何在NodeJS中轻松完成此操作?

3 个答案:

答案 0 :(得分:1)

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" ]

一个工作小提琴的例子,如果你想玩它: https://jsfiddle.net/hap2jfy4/

答案 1 :(得分:1)

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);
}

成对数组的结果,因此对[0]是(a,b)的数组。

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

答案 2 :(得分:1)

有点不那么笨重:

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