我有一个包含文本数据的网页:
[
{
"Id":1,
"Nombre":"DÓLAR B.NACIÓN",
"VariacionPorcentual":3.63636,
"Compra":52,
"Venta":57,
"UltimaActualizacion":"2019-08-13T10:32:02.810Z",
"Orden":1
},
{
"Id":2,
"Nombre":"DÓLAR BLUE",
"VariacionPorcentual":19.40298,
"Compra":53,
"Venta":56,
"UltimaActualizacion":"2019-08-13T10:32:02.810Z",
"Orden":2
}
]
我只想显示 Id
等于 1 的数据。我知道我应该使用 .filter()
但我不知道如何在我的代码中实现它。此 Id
应过滤 bna.compra、bna.venta 等字段的值。
function getBNA(callback){
request("URL", function(err, response, body){
if (err)
{
console.log("Error getting information from Lanacion", err);
return
}
var bna = JSON.parse(body);
callback(bna);
});
}
app.all(`/${process.env.BOT_ENDPOINT}`, function(req, res){
var cotizaciones = cotizaciones.filter(id => id===1);
getVariacion((dolar) => getBNA((bna) => {
var status = `🗓️ ${dolar.fecha}
💱Informal:
Compra: $${dolar.compra} | Venta: $${dolar.venta}
Variación: ${dolar["class-variacion"]!=='up' ? "🔻" : "🔺"} ${dolar.variacion}
🏦BNA:
Compra: $${bna.compra} | Venta: $${bna.venta}
Variación: ${(bna.VariacionPorcentual)==0 ? "➖" : (bna.VariacionPorcentual)<0 ? "🔻" : "🔺"} ${(bna.VariacionPorcentual)}%`;
例如,我需要得到:
🗓️ 12/09/2019 - 10:30
💱Informal:
Compra: $51,88 | Venta: $54,08
Variación:🔺 16,18%
这里是 Id:1 的值
🏦 BNA:
Compra: $52(compra) | Venta: $57 (venta)
Variación: 🔺 3.63636 (variacion porcentual)
最佳答案
I know I should use .filter()...
如果您只想查找单个项目,则不会。为此,您使用 find
:
var cotizacion = cotizaciones.find(({Id}) => Id === 1);
实例:
const cotizaciones = [{"Id":1,"Nombre":"DÓLAR B. NACIÓN","VariacionPorcentual":3.63636,"Compra":52,"Venta":57,"UltimaActualizacion":"2019-08-13T10:32:02.810Z","Orden":1},{"Id":2,"Nombre":"DÓLAR BLUE","VariacionPorcentual":19.40298,"Compra":53,"Venta":56,"UltimaActualizacion":"2019-08-13T10:32:02.810Z","Orden":2}];
var cotizacion = cotizaciones.find(entry => entry.Id === 1);
console.log(cotizacion.VariacionPorcentual, cotizacion.Compra, cotizacion.Venta, cotizacion.UltimaActualizacion);
请注意,我在参数列表中使用了解构来从对象中选取 id
属性。没有解构:
var cotizacion = cotizaciones.find(entry => entry.Id === 1);
实例:
const cotizaciones = [{"Id":1,"Nombre":"DÓLAR B. NACIÓN","VariacionPorcentual":3.63636,"Compra":52,"Venta":57,"UltimaActualizacion":"2019-08-13T10:32:02.810Z","Orden":1},{"Id":2,"Nombre":"DÓLAR BLUE","VariacionPorcentual":19.40298,"Compra":53,"Venta":56,"UltimaActualizacion":"2019-08-13T10:32:02.810Z","Orden":2}];
var cotizacion = cotizaciones.find(entry => entry.Id === 1);
console.log(cotizacion.VariacionPorcentual, cotizacion.Compra, cotizacion.Venta, cotizacion.UltimaActualizacion);
FWIW,我强烈建议从 var
转移到 let
和 const
。 :-)
关于javascript - 使用数据的 .filter 获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57479065/