Я пытаюсь создать приложение, которое использует API, который каждую секунду выдает новую информацию.Эта информация берется через веб-сокет (socket.io).Когда данные всего объекта передаются на клиентскую сторону, он должен создать таблицу с некоторыми данными, соответствующими имени объекта.
Это часть объекта, полученная отAPI
{ eventType: '24hrTicker',
eventTime: 1552416167544,
symbol: 'ZRXBNB',
priceChange: '0.00063000',
percentChange: '3.571',
averagePrice: '0.01780410',
prevClose: '0.01776000',
close: '0.01827000',
closeQty: '200.00000000',
bestBid: '0.01815000',
bestBidQty: '1028.90000000',
bestAsk: '0.01828000',
bestAskQty: '589.00000000',
open: '0.01764000',
high: '0.01858000',
low: '0.01726000',
volume: '197350.10000000',
quoteVolume: '3513.64020500',
openTime: 1552329767540,
closeTime: 1552416167540,
firstTradeId: 4948,
lastTradeId: 5281,
numTrades: 334 }
{ eventType: '24hrTicker',
eventTime: 1552416168270,
symbol: 'ZRXUSDT',
priceChange: '0.01380000',
percentChange: '5.347',
averagePrice: '0.26415650',
prevClose: '0.25780000',
close: '0.27190000',
closeQty: '648.50000000',
bestBid: '0.27190000',
bestBidQty: '3607.03000000',
bestAsk: '0.27300000',
bestAskQty: '1196.01000000',
open: '0.25810000',
high: '0.27850000',
low: '0.24930000',
volume: '2710750.57000000',
quoteVolume: '716062.38319800',
openTime: 1552329768267,
closeTime: 1552416168267,
firstTradeId: 40021,
lastTradeId: 44116,
numTrades: 4096 }
{ eventType: '24hrTicker',
eventTime: 1552416168170,
symbol: 'FETBNB',
priceChange: '-0.00053000',
percentChange: '-3.411',
averagePrice: '0.01512124',
prevClose: '0.01554000',
close: '0.01501000',
closeQty: '84.60000000',
bestBid: '0.01498000',
bestBidQty: '3603.60000000',
bestAsk: '0.01508000',
bestAskQty: '1416.70000000',
open: '0.01554000',
high: '0.01665000',
low: '0.01414000',
volume: '15016967.00000000',
quoteVolume: '227075.23396700',
openTime: 1552329768166,
closeTime: 1552416168166,
firstTradeId: 149059,
lastTradeId: 154620,
numTrades: 5562 }
{ eventType: '24hrTicker',
eventTime: 1552416168453,
symbol: 'FETBTC',
priceChange: '-0.00000060',
percentChange: '-1.024',
averagePrice: '0.00005741',
prevClose: '0.00005857',
close: '0.00005800',
closeQty: '26057.00000000',
bestBid: '0.00005780',
bestBidQty: '126.00000000',
bestAsk: '0.00005794',
bestAskQty: '2033.00000000',
open: '0.00005860',
high: '0.00006217',
low: '0.00005455',
volume: '45952459.00000000',
quoteVolume: '2638.19720144',
openTime: 1552329768449,
closeTime: 1552416168449,
firstTradeId: 1070694,
lastTradeId: 1108815,
numTrades: 38122 }
{ eventType: '24hrTicker',
eventTime: 1552416168472,
symbol: 'FETUSDT',
priceChange: '-0.00140000',
percentChange: '-0.618',
averagePrice: '0.22380295',
prevClose: '0.22640000',
close: '0.22500000',
closeQty: '2776.62000000',
bestBid: '0.22470000',
bestBidQty: '222.52000000',
bestAsk: '0.22490000',
bestAskQty: '1416.72000000',
open: '0.22640000',
high: '0.24140000',
low: '0.20870000',
volume: '37116510.87000000',
quoteVolume: '8306784.57211700',
openTime: 1552329768464,
closeTime: 1552416168464,
firstTradeId: 678606,
lastTradeId: 703455,
numTrades: 24}
Это код ejs, который я использую для проверки существующей строки, чтобы он не создавал новую, а просто обновлял существующую табличную строку с идентификатором символасодержит символы.
EJS CODE
<script>
var tabelBody = document.getElementById("coinDataTabel");
var testData = document.getElementById("test");
var symbol = [];
var existingRow;
var currentPair;
socket.on("coins", function(allCoinData){
if(allCoinData["symbol"].substr(allCoinData["symbol"].length - 3) == "BTC"){
currentPair = symbol.find(function(){
return allCoinData["symbol"];
});
if(currentPair == true){
testData.innerHTML = "<p>"+"symbol find is true!"+"</p>";
existingRow = document.getElementById(allCoinData["symbol"]);
existingRow.innerHTML = "<td>"+allCoinData["symbol"]+"</td>"+"<td>"+allCoinData["high"]+"</td>"+"<td>"+allCoinData["low"]+"</td>"+"<td>"+allCoinData["close"]+"</td>";
} else {
testData.innerHTML = "<p>"+"symbol find is false!"+"</p>";
symbol.push(allCoinData["symbol"]);
tabelBody.innerHTML += "<tr id="+allCoinData["symbol"]+">"+"<td>"+allCoinData["symbol"]+"</td>"+"<td>"+allCoinData["high"]+"</td>"+"<td>"+allCoinData["low"]+"</td>"+"<td>"+allCoinData["close"]+"</td>"+"</tr>";
}
}
});
</script>
Код проверяет наличие любого символа, заканчивающегося на «BTC».Все остальные символы в этом примере пропущены.После этого я попытался проверить, содержит ли символ массива тот же символ, который API возвращает в этой точке.если это так, он должен обновить строку, которая уже существует, вместо создания новой.
Пожалуйста, помогите мне, потому что я пробовал так много разных вещей, но ни одна не работала должным образом.