+ players.push({
+ "number": response.values[i][0],
+ "display_number": response.values[i][1],
+ "text": response.values[i][2],
+ "subtext": response.values[i][4], // To the right of the “info” column.
+ "image": response.values[i][5]
+ });
+ }
+
+ // Assign fake numbers to those that have none.
+ let used_numbers = {};
+ for (const player of players) {
+ used_numbers[player.number] = 1;
+ }
+ for (let player of players) {
+ let num = player.number;
+ if (num !== '' && num !== undefined) {
+ continue;
+ }
+ num = parseInt(player.display_number);
+ if (num >= 1 && num <= 999 && !used_numbers.hasOwnProperty(num)) {
+ player.number = '' + num;
+ }
+ }
+ for (let player of players) {
+ let num = player.number;
+ if (num !== '' && num !== undefined) {
+ continue;
+ }
+ num = 1;
+ while (used_numbers.hasOwnProperty(num)) { ++num; }
+ player.number = '' + num;
+ used_numbers[num] = 1;
+ }
+
+ for (const player of players) {
+ let number = player.number;
+ let display_number = player.display_number;