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