Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 如何计算arraylist中的项数_Javascript_Arrays_Sorting - Fatal编程技术网

Javascript 如何计算arraylist中的项数

Javascript 如何计算arraylist中的项数,javascript,arrays,sorting,Javascript,Arrays,Sorting,我想计算arraylist中的项目数,以便使用chart.js在图表中显示它 这就是我目前的做法,但我无法计算 常量数据数组=[]; 让labelsArray=['1-非常Jialat','2-Jialat','3-正常lor','4-稍微Shiok','5-Shiok ah']; db.collection'Feedback Ratings'.get.thensapshot=>{ snapshot.docs.forEachdoc=>{ FeebackRatings=doc.data.respo

我想计算arraylist中的项目数,以便使用chart.js在图表中显示它

这就是我目前的做法,但我无法计算

常量数据数组=[]; 让labelsArray=['1-非常Jialat','2-Jialat','3-正常lor','4-稍微Shiok','5-Shiok ah']; db.collection'Feedback Ratings'.get.thensapshot=>{ snapshot.docs.forEachdoc=>{ FeebackRatings=doc.data.response; let response=FeebackRatings.response; dataArray.pushFeebackRatings; //循环遍历数据数组 dataArray.forEachresponse=>{ //-1,因为如果值为1,我希望引用数组的索引0 如果数据数组[响应-1]{ dataArray[response-1]=dataArray[response-1]+=1 } if!数据数组[响应-1]{ dataArray[响应-1]=1 } } } }; //预期结果=[2,1,1]-其中索引中的第一项表示该项的计数 console.logdataArray; 让myChart=document.getElementById'myChart'.getContext'2d'; 让条形图=新图表MyChart{ 类型:'饼',//可以使用以下选项创建差异类型:条形、水平、饼状、直线、圆环、雷达 数据:{ 标签:标签阵列, 数据集:[{ 标签:“总数”, 数据:dataArray, 背景颜色:“粉色” }] }, 选项:{ 标题:{ 显示:对, 文本:'反馈统计', 尺寸:25 } } };
如果是JS数组,只需使用

dataArray.length
你在写信。那么,我猜你可能在处理一个承诺。 如果您正在处理一个承诺,则承诺之后的代码将在中的代码之前执行。然后将执行。所以可能需要这样做

1将需要执行的代码转换为函数

function displayChart(dataArray){
console.log(dataArray);

let myChart = document.getElementById('myChart').getContext('2d');

let BarChart = new Chart(myChart, {
  type: 'pie', //can create diff types using this; bar, horizontal, pie, line, donut, radar
  data: {
    labels: labelsArray,
    datasets: [{
      label: 'Total number',
      data: dataArray,
      backgroundColor: 'pink'
    }]
  },
  options: {
    title: {
      display: true,
      text: 'Feedback Statistics',
      fontSize: 25
        }
      }
    });

}
2并在then方法的末尾调用此函数

const dataArray = [0, 0, 0, 0, 0];
let labelsArray = ['1 - Very Jialat', '2 - Jialat', '3 - Normal lor', '4 - Shiok a bit', '5 - Shiok ah '];
db.collection('Feedback Ratings').get().then(snapshot => {
    snapshot.docs.forEach(doc => {
        FeebackRatings = doc.data().response;

        let response = FeebackRatings.response;


        // loop through the data array
        response.forEach(response, => {
            labelsArray.forEach((value, index) => {
                if (value == response) {
                    dataArray[index]++;
                }

            });

        })
    })
    displayChart(dataArray);
});

?array.length?我想将数组中的数据与标签进行匹配,形式为数组中有多少个“1-Jialat”我是否使用forloop进行计数?您现在正在获取数据吗。。是的,您可以使用for循环来执行此操作..是的。我从我发布的代码中得到了数据。但是我不确定如何做循环来对数组中的项目进行计数数组中包含这样的信息0:3-正常lor 1:2-Jialat 2:2-Jialat 3:1-非常Jialat 4:1-非常Jialat 5:5-Shiok ah 6:2-Jialat 7:1-非常Jialat 8:2-非常Jialat 9:1-非常Jialat 10:1-非常Jialat 11:1-非常Jialat 12:1-非常非常即使我遵守了你的密码,佳拉蒂现在也有了未可知的承诺错误。。。我不确定我应该在代码中的什么地方进行更改,这样它才能工作feedbackstats.html:48承诺引用中未捕获错误:未定义响应这是我得到的错误。用于循环前每个部分中的响应