如何计算每个数字在node.js的CSV列中出现的次数?

bogh5gae  于 2022-12-15  发布在  Node.js
关注(0)|答案(1)|浏览(141)

我有一个CSV文件,它是这样组织的,

Draw Date,Winning Numbers,Multiplier
10/15/2022,32 37 40 58 62 15,5
10/12/2022,14 30 41 42 59 06,5
10/10/2022,03 06 11 17 22 11,2
10/08/2022,13 43 53 60 68 05,2

我想创建两个表(一个为中奖号码,一个为中奖号码中的最后一个号码-红球),列出这样的信息,

Whiteball Numbers | Times Drawn
1: 4
2: 33
3: 1 
etc... All the way until 69

Red Ball Number | Times Drawn
1: 
2:
3:
etc. up to 26

基本上,它需要计算有多少次一个特定的号码出现在中奖号码的前5个列出,有多少次一个特定的号码出现在中奖号码类别的最后一个位置。
我已经能够设置csv文件,并且可以向其中写入新信息,但是我不知道如何从特定的CSV列计数,只计数到前五个数字,然后只计数到第六个数字,并让它跟踪每个数字的计数。

blmhpbnm

blmhpbnm1#

你能把csv转换成一个数组吗?当然可以,所以:只要计算一个对象中数字的出现次数,该对象的键是数字,它们的值是它们出现的频率。

var csv = `Draw Date,Winning Numbers,Multiplier
10/15/2022,32 37 40 58 62 15,5
10/12/2022,14 30 41 42 62 06,5
10/10/2022,03 06 11 17 22 11,2
10/08/2022,13 43 53 60 68 05,2`;
var arr = csv.split("\n").map(function(row) {
  return row.split(",")
})
console.log(arr)

var counter_white = {}
var counter_red = {};
for (var i = 1; i < arr.length; i++) {
  var list = arr[i][1].split(" ");
  for (var j = 0; j < 5; j++) {
    counter_white[list[j]] = (counter_white[list[j]] || 0) + 1
  }
  counter_red[list[5]] = (counter_red[list[5]] || 0) + 1
}

console.log(counter_white);
console.log(counter_red);
.as-console-wrapper {max-height: 100% !important}

相关问题