我想从NodeJS中的列表/项目集生成有序对
示例:我有一个包含项目的列表/集:[a,b,c]
生成有序对:(a,b),(a,c),(b,a),(b,c),(c,a),(c,b)
如何在NodeJS中轻松完成此操作?
答案 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)的数组。
答案 2 :(得分:1)
有点不那么笨重:
let set = ["a", "b", "c"];
let pairs = [];
set.forEach(function(x){
set.forEach(function(y) {
if (x !== y) {
pairs.push([x,y])
}
})
})