我正在尝试找到一种高效的方法来为数组中的玩家创建比赛,并为多维数组中的所有玩家返回所有可能的比赛,而不复制任何比赛。
这是我的例子:
// input
var players = [
{player: 'sam' }, {player: 'bob' }, {player: 'tim' }, {player: 'kevin' }
];
// output
var mathups = [
[{player: 'sam'}, {player: 'bob}],
[{player: 'sam'}, {player: 'tim'}],
[{player: 'sam'}, {player: 'kevin'}],
[{player: 'bob'}, {player: 'tim'}],
[{player: 'bob'}, {player: 'kevin'}]
... and so on
];
有没有人对如何使用普通 JS 或使用 lodash 或下划线之类的东西有任何建议?
最佳答案
可以在没有外部库的情况下像这样生成组合:
var players = [
{player: 'sam' }, {player: 'bob' }, {player: 'tim' }, {player: 'kevin' }
];
var m = [];
for (var i = 0; i < players.length; i++) {
for (var j = i+1; j < players.length; j++) {
m.push([players[i], players[j]]);
}
}
console.log(JSON.stringify(m,null, 2));
关于javascript - 从数组中生成所有可能的单挑对决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518727/