New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

team-up

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

team-up

Sorts players into equivalent teams based on performance rating

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
Maintainers
1
Weekly downloads
 
Created
Source

team-up

Sorts players into equivalent teams based on performance rating

Build Status

Dependency Status devDependency Status

using in your project

teamUp = require('team-up');

Ever wanted a programatic way to sort players into teams?

team-up allows you to pass in an array of players and have them automatically sorted into teams

Players will be first sorted in descending order by their performance attribute. Then distributed into teams

teamUp.sort(players, [options])

  • players (Array): The array of players to sort.
  • options Optional
    • numberOfTeams Number, Optional, Default: 2
    • sorter String, Optional, Default: schoolyard
    • field String, Optional, Default: performance
    • sortBy Function, Optional

Returns the sorted teams

Default sort


var players = [
  {id: 1, performance: 10, gamesPlayed: 3},
  {id: 2, performance: 30, gamesPlayed: 1},
  {id: 3, performance: 20, gamesPlayed: 4},
  {id: 4, performance: 50, gamesPlayed: 2}
]

var teams = teamUp.sort(players);

teams.should.eql(
  [{
    players: [
      {id: 4, performance: 50},
      {id: 3, performance: 20}
    ]
  },{
    players: [
      {id: 2, performance: 30},
      {id: 1, performance: 10}
    ]
  }]
)

Specifying field to sort by


var players = [
  {id: 1, performance: 10, gamesPlayed: 3},
  {id: 2, performance: 30, gamesPlayed: 1},
  {id: 3, performance: 20, gamesPlayed: 4},
  {id: 4, performance: 50, gamesPlayed: 2}
]

var teams = teamUp.sort(players, {field: 'gamesPlayed'});

teams.should.eql(
  [{
    players: [
      {id: 3, performance: 20, gamesPlayed: 4},
      {id: 4, performance: 50, gamesPlayed: 2}
    ]
  },{
    players: [
      {id: 1, performance: 10, gamesPlayed: 3},
      {id: 2, performance: 30, gamesPlayed: 1}
    ]
  }]
)

Specifying sortBy function


var players = [
  {id: 1, performance: 10, gamesPlayed: 3},
  {id: 2, performance: 30, gamesPlayed: 1},
  {id: 3, performance: 20, gamesPlayed: 4},
  {id: 4, performance: 50, gamesPlayed: 2}
]

var sortBy = function(player, index) {
  return player.id + player.gamesPlayed
}

var teams = teamUp.sort(players, {field: 'gamesPlayed'});

teams.should.eql(
  [{
    players: [
      {id: 3, performance: 20, gamesPlayed: 4},
      {id: 1, performance: 10, gamesPlayed: 3}
    ]
  },{
    players: [
      {id: 4, performance: 50, gamesPlayed: 2},
      {id: 2, performance: 30, gamesPlayed: 1}
    ]
  }]
)

Specifying numberOfTeams


var players = [
  {id: 1, performance: 10, gamesPlayed: 3},
  {id: 2, performance: 30, gamesPlayed: 1},
  {id: 3, performance: 20, gamesPlayed: 4},
  {id: 4, performance: 50, gamesPlayed: 2}
]

var teams = teamUp.sort(players, {numberOfTeams: 4});

teams.should.eql(
  [{
    players: [
      {id: 4, performance: 50}
    ]
  },{
    players: [
      {id: 2, performance: 30}
    ]
  },{
    players: [
      {id: 3, performance: 20}
    ]
  },{
    players: [
      {id: 1, performance: 10}
    ]
  }]
)

sorters

Currently only supports schoolyard sort.

schoolyard sort

Modeled after the old-fashioned method used by kids to divide into teams. Where 2 captains are nominated who each take it in turn to choose the next best player until there are no players remaining.

Keywords

FAQs

Package last updated on 30 Jul 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc