Могу ли я собрать несколько переменных из текстовых полей быстрее? - PullRequest
0 голосов
/ 02 апреля 2019

В code.org я пытаюсь собрать данные из текстовых полей, где они могут вводить числа. Я хочу назначить числа, введенные в текстовые поля, в разные переменные.

Прямо сейчас я отдельно беру каждую переменную.

В настоящее время я создаю переменные в начале моего кода следующим образом.

var player1 = "player1";
var player2 = "player2";
var player3 = "player3";
var player4 = "player4";
var player5 = "player5";

Затем, после того как я использовал функцию-обработчик onEvent, я получаю каждое из чисел отдельно, используя функцию getText.

onEvent("team2Button", "click", function () {
  player1 = getText("player1");
  player2 = getText("player2");
  player3 = getText("player3");
  player4 = getText("player4");
  player5 = getText("player5");
});

Поскольку у меня есть около 30 наборов данных для сбора, есть ли более быстрый способ присвоить эти значения переменной?

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Вы можете использовать объект:

const players = {};

for(let i = 1; i <= 30; i++) {
 players[`player${i}`] = `player${i}`
}

onEvent('button', 'click', function(){
   for(let key in players){
     players[key] = getText(key)
   }
})
0 голосов
/ 02 апреля 2019

Вы можете использовать вкладку «Дизайн» для создания текстового ввода, а затем написать некоторый код для добавления новой записи в список каждый раз, когда вы вводите что-то и нажимаете ввод:

var players = [];
onEvent("text_input1", "change", function(event) {
  var name = getText("text_input1");
  appendItem(players, name);
  setText("text_input1", '');
  console.log("added player: " + name);
});

ЕслиВы хотите, чтобы этот ввод текста был отделен от остальной части вашего приложения, вы можете поместить его на другой экран.Например: https://studio.code.org/projects/applab/3vINC-jX6LHkiARJCoCmUQ

...