[英]How to pair two items from different arrays in JavaScript?
Let's assume that I have two arrays with objects in them.假设我有两个包含对象的数组。
var teams = [tobj1, tobj2 ...]
var players = [pobj1, pobj2 ...]
The objects have 1 property (name: teamname/playername).这些对象有 1 个属性(名称:团队名称/玩家名称)。
var tobj1 = {
name: playername // this comes from an inputfield
}
What I'm trying to do is pairing randomly a team with a player until every team got a player.我想要做的是随机配对一个团队和一个球员,直到每支球队都有一个球员。 The number of teams are equal to the number of players.球队的数量等于球员的数量。
Hint: it will be a football draw app提示:这将是一个足球抽奖应用程序
Thanks for the help.谢谢您的帮助。
let players = [ { name: 'a' }, { name: 'b' }, { name: 'c' } ];
const teams = [ { name: '1' }, { name: '2' }, { name: '3' } ];
const appairedTeams = teams.map( team => {
let index = Math.floor(Math.random() * players.length);
team.player = players[index];
players.splice(index, 1);
return team;
});
Or if you don't want to create a new object:或者,如果您不想创建新对象:
let players = [ { name: 'a' }, { name: 'b' }, { name: 'c' } ];
let teams = [ { name: '1' }, { name: '2' }, { name: '3' } ];
teams.forEach( team => {
let index = Math.floor(Math.random() * players.length);
team.player = players[index];
players.splice(index, 1);
});
Or if you want the player's name only:或者,如果您只想要玩家的名字:
let players = [ { name: 'a' }, { name: 'b' }, { name: 'c' } ];
let teams = [ { name: '1' }, { name: '2' }, { name: '3' } ];
teams.forEach( team => {
let index = Math.floor(Math.random() * players.length);
team.playerName = players[index].name;
players.splice(index, 1);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.