Javascript 循环遍历节点中的对象数组

Javascript 循环遍历节点中的对象数组,javascript,html,node.js,chart.js,ejs,Javascript,Html,Node.js,Chart.js,Ejs,我有一个Node web应用程序,最近开始合并ChartJS数据库viz。下面是我在EJS模板页面上的脚本标记中嵌套的内容: <script> let playerStatChart = new Chart(myChart, { type: 'bar', data: { labels: ['Freshman', 'Sophomore', 'Junior', 'Senior'], datasets: [{ labe

我有一个Node web应用程序,最近开始合并ChartJS数据库viz。下面是我在EJS模板页面上的脚本标记中嵌套的内容:

<script>
let playerStatChart = new Chart(myChart, {
    type: 'bar',
    data: {
        labels: ['Freshman', 'Sophomore', 'Junior', 'Senior'],
        datasets: [{
            label: 'Points',
            // Works
            data: [1,2,3,4],
            // Does not work and appears blank
            // One of these data lines is commented out, so there isn't a redundancy
            data: pointAvg,
            backgroundColor: 'rgb(149,16,16, 0.4)',
            borderWidth: 1,
            borderColor: '#000',
            hoverBorderWidth: 3,
            hoverBorderColor: '#000'
        }]
    },
    options: {
        title: {
            display: true,
            text: "Points: <%= player.name %>",
            fontSize: 25
        },
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
});
</script>
我如何循环每个球员的赛季值,并动态填充图表的数据,类似于图表标题。下面是我一直在玩的一个示例,它也在上面显示的代码前面的脚本标记中:

let player = "<%= player %>"
let pointAvg = []

player.season.forEach(function(season){
    pointAvg.push(season.ppg)
     }) 

但是,当我使用此代码并将数据值设置为pointAvg时,图表显示为空白,没有值。我在这里遗漏了什么?

通过对象季节数组映射并返回ppg属性。通过使用map,可以避免使用额外的pointAvg数组

常量输入={ _id:'5e94 ac2d81fa5428b0323fc1', 姓名:“Naz Mitrou Long”, 图像:'https://alchetron.com/cdn/naz-long-b96e0ac4-b460-4dd7-ab76-de54cccbd62-resize-750.jpeg', 位置:'守卫', 描述:“拿撒勒的三个苏斯”, __五:六,, 体重:218, 家乡:'密西沙加,在', 国家:'加拿大', 身高(英尺):6,, 身高_英寸:4, 季节:[{ 年份:“2012-2013”, 年级:'新生', gp:18, gs:0, mpg:6.9, 前景:0.348, tp:0.278, 英国《金融时报》:1, rpg:0.8, apg:1, spg:0.3, bpg:0, ppg:1.4 }, { 年份:“2013-2014”, 年级:'大二', gp:36, 一般事务:7, mpg:20.3, 前景:0.432, tp:0.4, 英尺:0.643, rpg:1.6, apg:1.1, spg:0.2, bpg:0.1, ppg:7.1 }, { 年份:“2014-2015”, 年级:'初级', gp:34, 一般事务:33, mpg:27.5, 前景:0.449, tp:0.391, 英尺:0.755, rpg:2.9, apg:2, spg:0.8, bpg:0.1, ppg:10.1 }, { 年份:“2015-2016”, 成绩:“R.高级”, gp:8, 一般事务:8, mpg:31.6, 前景:0.425, tp:0.291, 英尺:0.6, rpg:2.9, apg:1.9, spg:0.6, bpg:0.3, ppg:12 }, { 年份:“2016-2017”, 年级:'高级', gp:35, 一般事务:35, mpg:33.3, 前景:0.473, tp:0.384, 英尺:0.795, rpg:4.6, apg:2.7, spg:1.2, bpg:0, ppg:15.1 } ] } const result=input.seasure.map{ ppg }=>ppg;
console.LogResulty您可以使用map将这些PPG作为数组中的十进制数返回。我如何才能从EJS模板中访问这些PPG?您的模板看起来如何?您通常如何从中获取数据?上面代码第一部分中的playerStatChart位于我的EJS模板底部的脚本标记中。我想做的是利用图表数据部分的PPG值。
let player = "<%= player %>"
let pointAvg = []

player.season.forEach(function(season){
    pointAvg.push(season.ppg)
     })