如何为每个数组元素创建一个计数器?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为每个数组元素创建一个计数器?相关的知识,希望对你有一定的参考价值。

我是JS的新手,我需要一些代码的帮助。

好,这是东西。我正在尝试为“名称”数组的每个元素创建一个计数器。

这里是代码:

    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);
    

我需要在提示符下输入一个值,如果它与数组中的值匹配,那么我需要将该项目添加到列表中。添加必须通过使用计数器来进行。例如,我在“提示字段”中输入值“香蕉”,计数器值应增加一。我需要对数组中的每个元素执行此操作。我该怎么办?

提前感谢!

答案

您可以维护两个数组,一个数组用于项目列表,另一个数组用于其对应的计数器。

对于每个提示项目,如果它与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;
    
  

以上是关于如何为每个数组元素创建一个计数器?的主要内容,如果未能解决你的问题,请参考以下文章

计数排序算法

mongodb:如何为每个数组元素创建_id?

如何为对象计数多个关系创建谓词?核心数据 iOS Swift

如何为主数组列表的元素创建“子数组列表”?

如何为两个 for 循环设置一个计数器?

如何为 R 中使用百分比而不是计数作为 y 轴的数据框创建条形图?