在千里码里看到一题,谷雨日志统计访客数据的题目:
每一个网站都会根据访客日志统计访客数据,比如UV(Unique Visitor,即访问用户)。
UV能够回答一个关键的市场营销问题:“到底有多少人(潜在客户)看到了你发布的信息(即网站)”。
这道题的任务是根据给出的某购物网站访问日志,统计当天该网站UV。
日志文件的每一行代表一次访问行为,每行分别包含三项,以空格分隔,格式为:
用户访问的时间 用户的id 用户的行为
请问8月24号当天,该网站有多少个用户(相同用户id算一个用户)访问?
当然这个问题对与后端开发的同学肯定是so easy, 我是一个前端开发,所以以下是我的解题方法。
const fs = require('fs') const users = {} fs.readFile('uv.txt', (err, data) => { let i = 0 data.toString().split(' ').forEach(row => { const items = row.split(' ') if (items[0].includes('08-24') && !users[items[1]]) { users[items[1]] = 1 i++ } }) console.log(i)//57856 })
Node.js内置的fs
模块就是文件系统模块,负责读写文件。
和所有其它JavaScript模块不同的是,fs
模块同时提供了异步和同步的方法。