Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript计算数组中每种类型的数量_Javascript - Fatal编程技术网

Javascript计算数组中每种类型的数量

Javascript计算数组中每种类型的数量,javascript,Javascript,我试图计算数组“flowers”中的每种类型的花,该数组存储在外部库的数组中。有三种花,玫瑰、万寿菊和郁金香。我有一个带有按钮的html页面,当点击时,它会告诉我每个花在存储的数组中有多少。但是,我的程序在运行时不会给我计数。代码在我看来是正确的,所以我完全不知道它出了什么问题 document.getElementById('go').onclick = function () { roseCount = 0; marigoldCount = 0; tulipCount = 0; le

我试图计算数组“flowers”中的每种类型的花,该数组存储在外部库的数组中。有三种花,玫瑰、万寿菊和郁金香。我有一个带有按钮的html页面,当点击时,它会告诉我每个花在存储的数组中有多少。但是,我的程序在运行时不会给我计数。代码在我看来是正确的,所以我完全不知道它出了什么问题

document.getElementById('go').onclick = function () {

roseCount = 0;

marigoldCount = 0;

tulipCount = 0;

lengthArray = flowers.length;

for (f = 0; f < lengthArray; f++) {

    if (flowers[f] == 'rose') {

        roseCount ++;

    };

    if (flowers[f] == 'marigold') {

        marigoldCount ++;

    };

    if (flowers[f] == 'tulip') {

        tulipCount ++;

    };

    document.getElementById('tulip').value = tulipCount;

    document.getElementById('rose').value = roseCount;

    document.getElementById('marigold').value = marigoldCount;

  };

};
HTML


好的,HTML和JS一起提供是没有意义的,所以我让函数运行起来,以便您可以分析并查看错误

问题:

使用var而不是像那样定义一个变量,否则它将成为一个全局变量

var roseCount = 0;
var marigoldCount = 0;
var tulipCount = 0;
var flowers = ['rose', 'marigold', 'tulip'];
var lengthArray = flowers.length;
flowers数组甚至没有定义。我已经这样做了

var flowers = ['rose', 'marigold', 'tulip'];
当按下按钮时,我们需要计算,所以我将逻辑包装在一个名为calculate的函数中,并使用HTML调用它

<button id = 'go' class = '' onclick='calculate()'>COMPUTE</button>
请参阅下面的代码片段,并让我知道您的问题是否已解决,谢谢

此外,在外部js文件中,名称中有空格,请将其删除

函数计算{ var-rosecont=0; var marigoldCount=0; var TuliCount=0; var flowers=[‘玫瑰’、‘万寿菊’、‘郁金香’]; var lengthArray=花的长度; 对于f=0;f您试图在文档加载完成之前将onclick处理程序附加到元素。因此,将代码替换为:

//忽略此行,您已经有一个flowers数组 var flowers=[‘玫瑰’、‘玫瑰’、‘万寿菊’、‘万寿菊’、‘万寿菊’、‘郁金香’、‘郁金香’]; //等待DOM加载 window.onload=函数{ //现在DOM已准备就绪,请附加事件处理程序! document.getElementById'go'。addEventListener'click',函数{ var-rosecont=0; var marigoldCount=0; var TuliCount=0; //计算项目数 对于变量i=0,l=flowers.length;i 计算
现在还不清楚花是从哪里来的。@尖头花已经在一个外部库中创建。其中存储了三朵花。我应该只使用flowersHow。当你没有显示数组的结构并提供预期结果的示例时,有人应该提供帮助吗?请提供一个示例。你也检查了开发人员的con吗唯一的错误?URL中允许空格吗?@令人惊讶的是,你能发现测试数据吗???。现在真正聪明的一点是,如果他的程序与测试数据一起工作,你认为它与真实数据一起工作的机会有多大?。欢迎来到编程世界。@令人惊讶的是,你能解决你的问题吗?问题一定在另一个JSF文件中e数组存在…请确保数组定义正确,如上面的代码片段所示,还请确保提供一个没有空格的名称…可能源js文件不包含在HTML文件中
<button id = 'go' class = '' onclick='calculate()'>COMPUTE</button>
<input id = 'tulip' name = 'tulip' value = '' class = ''>
<input id = 'rose' name = 'rose' value = '' class = ''>
<input id = 'marigold' name = 'marigold' value = '' class = ''>