javascript - 需要单行显示 JSON 数据,可读性强
问题描述
我使用这个库制作了一个简单的控制台样式 scorebot,它输出 CS:GO 实时比赛的日志(例如,碎片、助攻、连接到服务器的玩家),我制作了这个代码,以 JSON 样式对象输出所有日志:
const HLTV = require('hltv').default
HLTV.connectToScorebot({
id: 2349500,
onLogUpdate: (data) => {
console.log(data.log)
}
})
并且控制台的输出是很多这样的日志,这是正确的:
[
{
Kill: {
killerName: 'kr1vda',
killerNick: 'kr1vda',
killerSide: 'TERRORIST',
victimNick: 'nonick',
victimName: 'nonick',
victimSide: 'CT',
weapon: 'ak47',
headShot: true,
eventId: 2151088609,
victimX: -1728,
victimY: -1182,
killerX: -1861,
killerY: -1165,
killerId: -1,
victimId: 10732
}
}
]
但我想有一个单行输出,比如“PlayerX 用 ak47 杀死了 PlayerY”,所以我做了这个:
const HLTV = require('hltv').default
HLTV.connectToScorebot({
id: 2349500,
onLogUpdate: (data, done) => {
const event = Object.keys(data)[0]
const eventData = data[event]
if (event === 'Kill') {
console.log(`${eventData.killerNick} killed ${eventData.victimNick} using ${eventData.weapon}`)
}
}
})
当发生杀死时,它应该打印一个单行字符串,但是输出不是空的,而是什么都没有显示。我知道这并不难,但我不是专家,如果有人能帮我解决这个问题,我将不胜感激。谢谢
解决方案
您需要从 data.log 中获取事件
const HLTV = require('hltv').default
HLTV.connectToScorebot({
id: 2349500,
onLogUpdate: (data, done) => {
const event = Object.keys(data.log[0])[0]
const eventData = data.log[0][event]
if (event === 'Kill') {
console.log(`${eventData.killerNick} killed ${eventData.victimNick} using ${eventData.weapon}`)
}
}
})
推荐阅读
- c++ - 可以获得 Gmutex 锁的线程所有者吗?
- javascript - 未捕获的 TypeError formiobuilder 不是函数。我做错什么了?
- c# - 如何以编程方式使用在 Window.Resources 中定义的 GroupStyle?
- html - 如何在反应中加载带有脚本标签的外部静态 HTML 页面?
- sql - 将行转换为列并计算总和
- php - 带有作曲家的 docker 容器中缺少 ext-gd
- memory-management - 将未分配的可分配变量作为可分配的虚拟参数传递
- javascript - 如何从安卓网络浏览器打印到蓝牙热敏打印机?
- python - Seaborn Facet Grid 'col=' 不在 Jupyter Notebook 中并排创建绘图
- php - Php Codeigniter 中的数组到字符串转换