Как сделать счетчик для каждого элемента массива? - PullRequest
0 голосов
/ 26 октября 2019

Я новичок в JS, и мне нужна ваша помощь с кодом.

Хорошо, вот в чем дело. Я пытаюсь сделать счетчик для каждого элемента массива "names".

Вот код:

    var bool = [false, false, false];

    var names = ["Banana", "Apple", "Pear"];
    var prices = [10, 20, 30]
    var sell = ["not purchased!", "not purchased!", "not purchased!"];  
    var text;
    var count = 0;
    function checkbuy (names) {
    while (text != 0)
    {
      text = prompt("product list: " + names)
      names.sort((a, b) => { return (text.includes(b)) - (text.includes(a)); });

      if (names.indexOf(text) >= 0)
      {
        bool[names.indexOf(text)] = true;
        sell[names.indexOf(text)] = "purchased!";
        count[names.indexOf(text)]  += 1;
        alert("Product " + text.toUpperCase() + " is purchased!");
      }
      for (i = 0; i < names.length; i++)
      {
        var myList = [ [names[i], prices[i], bool[i], sell[i], count], [names[i], prices[i], bool[i], sell[i], count], [names[i], prices[i], bool[i], sell[i], count ] ];

        // alert(myList[i][0]);
        alert(names[i] + " " + sell[i] + ", " + bool[i] + count)

      }
      alert(names);
    }
}

Мне нужно ввести значение в подсказке, и если оносовпадает со значением из массива, затем мне нужно добавить этот элемент в список. Дополнение должно происходить с помощью счетчика. Например, я ввожу значение «Банан» в «поле приглашения», и значение счетчика должно увеличиться на единицу. И мне нужно сделать это для каждого элемента в массиве. Как я могу это сделать?

Заранее спасибо!

1 Ответ

0 голосов
/ 26 октября 2019

Вы можете поддерживать два массива, один для списка элементов и один для их соответствующего счетчика.

Для каждого элемента приглашения, если он соответствует элементу в names, вы можете увеличить соответствующий индекс в sold. Теперь в вашем проданном массиве все, что == 0 равно not purchased, и вам не нужен другой массив для отслеживания этого.

var names = ["Banana", "Apple", "Pear"];
var sold = [0, 0, 0];

let exitPrompt = true;

while (exitPrompt) {
  let promptVal = prompt('what do you want to buy?');
  if (promptVal && promptVal.indexOf('exit') == 0) {
    console.log(sold);
    break;
  } else {
    let nameIndex = names.indexOf(promptVal);
    if (nameIndex >= 0) {
      sold[nameIndex] += 1;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...