javascript - 我有一个唯一 id 列表,我想在其中为每个 id 数据实现一个计数器,每 10 分钟刷新一次
问题描述
数据将每 10 分钟刷新一次,并且计数必须相应更改。
const fs = require('fs');
const readfile = require('readfile');
function readFile(file_name) {
return new Promise(function(resolve, reject) {
fs.readFile(file_name, (err, data) => {
if (err) return reject(err);
return resolve(data);
});
});
}
async function execute(file_name) {
try {
const file_data = await readFile(file_name);
const records = JSON.parse(file_data);
return records.map(single_record => single_record.rdid);
}
catch(e) {
// error handling
}
}
execute("data.json").then(push => console.log(push));
这是我的 JSON 文件
[
{"edid":"r7vr8r", "rdid":"86596", "rssi":"15", "batt":"1.35"},
{"edid":"v8r48e", "rdid":"98525", "rssi":"15", "batt":"1.35"},
{"edid":"948rcv", "rdid":"12585", "rssi":"15", "batt":"1.35"},
{"edid":"d39d38", "rdid":"12585", "rssi":"15", "batt":"1.35"},
{"edid":"f44914", "rdid":"86596", "rssi":"15", "batt":"1.35"},
{"edid":"r7vr8r", "rdid":"86596", "rssi":"15", "batt":"1.35"},
{"edid":"v8r48e", "rdid":"98525", "rssi":"15", "batt":"1.35"},
{"edid":"948rcv", "rdid":"86596", "rssi":"15", "batt":"1.35"},
{"edid":"r8v9ee", "rdid":"98525", "rssi":"15", "batt":"1.35"},
{"edid":"d39d38", "rdid":"98525", "rssi":"15", "batt":"1.35"},
{"edid":"f44914", "rdid":"12585", "rssi":"15", "batt":"1.35"},
{"edid":"r7vr8r", "rdid":"12585", "rssi":"15", "batt":"1.35"},
{"edid":"v8r48e", "rdid":"98525", "rssi":"15", "batt":"1.35"},
{"edid":"948rcv", "rdid":"12585", "rssi":"15", "batt":"1.35"},
{"edid":"r8v9ee", "rdid":"12585", "rssi":"15", "batt":"1.35"},
{"edid":"d39d38", "rdid":"98525", "rssi":"15", "batt":"1.35"},
{"edid":"f44914", "rdid":"12585", "rssi":"15", "batt":"1.35"}
]
这是我目前的输出。
[
'86596', '98525', '12585',
'12585', '86596', '86596',
'98525', '86596', '98525',
'98525', '12585', '12585',
'98525', '12585', '12585',
'98525', '12585'
]
但不是这个,我想有类似的东西:
98525: 6
12585: 7
86596: 4
JSON 文件上的数据将每 10 分钟刷新一次
解决方案
简单地将您的返回数据获取为:
uniqueCount = [
'86596', '98525', '12585',
'12585', '86596', '86596',
'98525', '86596', '98525',
'98525', '12585', '12585',
'98525', '12585', '12585',
'98525', '12585'
];
var count = {};
uniqueCount.forEach(function(i) {
count[i] = (count[i]||0) + 1;
});
console.log(count);
// result will be {12585: 7, 86596: 4, 98525: 6}
推荐阅读
- c# - C# XML 文档 '
'标签没有出现在智能感知中? - qt - QT5 中的 QwtPlotZoomer 崩溃
- javascript - 如何将动态数据加载到 react-native-chart-kit?
- python-3.x - Sized、Iterable 和 Container 的 Python 类型提示
- javascript - 在下面而不是右边开始一个新行
- mysql - 如何配置Mysql以避免错误:Illegal mix of collations
- python - 即使我用 int32 或 float32 编辑 dtype,我如何修复尺寸我得到同样的错误?
- java - 单元测试 - 无法加载 ApplicationContext
- sql - VBA 过程中的 SQL 子句帮助
- arrays - 从评估创建一维数组