亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 JavaScript 計算文本文件的每個后續行之間的差異?

如何使用 JavaScript 計算文本文件的每個后續行之間的差異?

POPMUISE 2022-10-08 10:37:43
我有兩個通過 XML 輸出數據的提要箱(BinA、BinB)。使用 Node,我已經可以每 5 分鐘成功解析一次相關數據并將其記錄到一個文本文件中,參見代碼段:(timestamp),(BinA current weight),(BinB current weight)2020-06-16 13:49,4874,55782020-06-16 13:54,4871,55742020-06-16 13:59,4870,5573現在,我想每 5 分鐘(每行之間)計算一次“使用情況”并將其保存到另一個數組中。從上面的行中連續減去下面的行 (4874-4871 = 3, 5578-5574 = 4,...) 應該得到這個數組:(timestamp),(BinA minus line above),(BinB minus line above)2020-06-16 13:54,3,42020-06-16 13:59,1,1這很容易加載到charts.js 圖表中,并且還可以生成過度使用和不足的警報。到目前為止,我在試圖提出這些數據的循環中一無所獲,而且我無法在其他地方找到類似的問題/解決方案。感興趣的人的文件(xml、data1.txt、app.js:[ https://www.dropbox.com/sh/q6z7735bhy2k7fh/AACaai717meRVvzxj9LxVBLda?dl=0][1]順便說一句,這是我的第一個 Node/Javascript 項目?。`感來自一個有問題的雞舍)
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

你可以做這樣的事情。首先格式化您的數據,使其位于對象數組中,timeStamp既是字符串binA又binB是數字。如果它們是字符串,則可以通過執行以下操作將 bin 值轉換為數字Number('4874'):


然后每五分鐘調用一次函數并找到數組中的最后一項,并將一個新對象推入一個新數組,該數組通過將其與之前數組中的對象進行比較來派生:


const usage = [];


const data = [

  {timeStamp: '2020-06-16 13:49', binA: 4874, binB: 5578},

  {timeStamp: '2020-06-16 13:54', binA: 4871, binB: 5574},

  {timeStamp: '2020-06-16 13:59', binA: 4870, binB: 5573},

]; 


const getUsage = data => {

  const result = {

    timeStamp: data[data.length - 1].timestamp,

    binA: data[data.length - 1].binA - data[data.length - 2].binA,

    binB: data[data.length - 1].binB - data[data.length - 2].binB,

  }

  usage.push(result);

}


// call getUsage(data); every five minutes

您應該與解析文本文件并行執行此操作,我不會嘗試從文本文件中提取數據。


查看完整回答
反對 回復 2022-10-08
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號