javascript - 如何获得满足条件的两个对象键的总和
问题描述
我有一个具有以下键/值的 obj
var pay = [
{
journal: 23,
regdate: "31/08/2021",
account: "2.1.01.0001.02181 Folha de Pagamento:Salarios a Pagar",
debitvalue: "3003,58",
creditvalue: "",
itemdescrip: "Valor ref folha de pgto, mês 08/2021",
name: "",
branch: "",
costcenter: "",
message: "",
},
{
journal: 23,
regdate: "31/08/2021",
account: "2.1.01.0001.02181 Folha de Pagamento:Salarios a Pagar",
debitvalue: "",
creditvalue: "4003,58",
itemdescrip: "Valor ref folha de pgto, mês 08/2021",
name: "",
branch: "",
costcenter: "",
message: "",
},
];
我想从满足条件的“creditvalue”中减去所有“debitvalue”,即帐户密钥包含 2.1.01.0001.02181
我已经尝试过 map、filter、indexOf、contains 并且所有这些都返回 []。
预期结果应该是 3.000 我从 javascript 开始,我不太了解。谢谢。
解决方案
像这样的东西会起作用。
let diff
pay.forEach((obj) => {
if (obj.account.includes('2.1.01.0001.02181')) {
let credit = parseInt(obj['creditvalue'].replace(/,/g, '.')) || 0
let debit = parseInt(obj['debitvalue'].replace(/,/g, '.')) || 0
diff = credit - debit
}
})
console.log(diff)
我投入了一些正则表达式来处理您数据中的逗号。
推荐阅读
- docker - 在 kubernetes 中具有持久容量的 redisinsights
- r - 当一条线高于某个值时,如何在不影响 R 中使用 ggplot2 的其他线的情况下裁剪一条线?
- wordpress - 为什么我的 wordpress 无法添加新主题或插件?我也缺少一些功能,但我不知道为什么
- php - 具有可选值的数组解构赋值
- amazon-lex - 无 lex 语音 IVR 输入
- rxjs - 通过展平/不展平对可观察数组进行操作,同时保持流
- sql - 为什么SQL查询中另一个值为0时不返回一个值
- safari - WebRTC Safari 集成测试:如何模拟 getUserMedia 视频?
- html - 如何在 CSS 布局中将元素推送到其容器的末尾?
- assembly - 为什么通过寄存器调用子程序?