我正试图编写一个加密警报系统,但我遇到了一个问题,所以我有一个名为 getAlerts
返回如下数组:
[{"id":3,"user_id":"1","ticker":"btcusdt","price":41000,"position":"above"},{"id":4,"user_id":"1","ticker":"btcusdt","price":36000,"position":"above"}]
[{"id":1,"user_id":"1","ticker":"btcusdt","price":40000,"position":"below"}]
然后我有一个带有setinterval的websocket,它每1秒检查一次值。如何将websocket中的价格字符串与数组中的所有价格键进行比较,并与它们的用户id键进行比较?假设当前价格与数组中的一个价格键匹配,如何获取匹配键的索引?我在谷歌上搜索了很多,但不幸的是,这些问题比较了两个数组,仍然找不到任何关于匹配键索引的信息。
nodejs代码
const WebSocket = require('ws');
const launchMonitorInstance = (ticker) => {
let AboveList = [];
let BelowList = [];
getAlerts(ticker, "above").then((result) => {
AboveList = JSON.stringify(result);
});
getAlerts(ticker, "below").then((result) => {
BelowList = JSON.stringify(result);
});
const ws = new WebSocket(`wss://stream.binance.com:9443/ws/${ticker}@trade`);
let coinprice;
ws.on('message', function incoming(data) {
let result = JSON.parse(data);
coinprice = result.p;
});
setInterval(() => {
if (coinprice > AboveList) {
// get user_id of matched key
// do something
}
if (coinprice < BelowList) {
// get user_id of matched key
// do something
}
}, 1000);
};
1条答案
按热度按时间t98cgbkg1#
您可以使用array.prototype.findindex使用 predicate 查找第一个匹配元素的索引。或者,使用array.prototype.find立即获得结果:
我只是简单地使用字符串和
String.prototype.includes
作为数据/ predicate ,但这也适用于您检查的对象列表,例如。v.user_id === user_id
.