javascript - 对对象值求和
问题描述
我正在尝试对对象数据中键“值”的值求和。谷歌搜索了很多,但无法弄清楚这一点。我的猜测是我没有从 localStorage 中检索值。编辑:我想将总和值保存到 localStorage ...
var storage = localStorage.getItem("Bills");
if (storage !== null) {
var data = JSON.parse(storage);
loadData(data);
var id = data.length;
} else {
id = 0;
data = [];
};
function loadData(array) {
array.forEach(function(bill) {
newItem(bill.name, bill.value, bill.id, bill.payed);
});
};
function addBill() {
modal.style.display = "none";
var bill = document.getElementById("billName").value;
var billVal = document.getElementById("billValue").value;
newItem(bill, billVal, id, false);
data.push({
name: bill,
value: billVal,
id: id,
payed: false
});
billsTotals.innerHTML = Object.values(data).reduce((t, { value }) => t + value, 0); // ?????
localStorage.setItem("Bills", JSON.stringify(data));
};
function newItem(name, value, id, payed) {
if (payed == true) {
return;
}
var ul = document.getElementById("list");
var li = document.createElement("li");
li.appendChild(document.createTextNode(name + " " + value + "kr"));
li.setAttribute("id", id);
ul.appendChild(li);
bill = document.getElementById("billName").value = "";
billVal = document.getElementById("billValue").value = "";
};
我尝试在 reduce 之前添加 .values 但没有任何效果:
billsTotals.innerHTML = Object.values(data.value).reduce((t, {value}) => t + value, 0); // ?????
解决方案
不确定您的数据变量。但是数据变量是一个数组,那么你可以做这样的事情。
data.reduce((total,{value})=>{
return total +value
},0)
推荐阅读
- amazon-web-services - 关于 aws athena 中伯努利样本大小的问题
- java - ExecutorService 不起作用,但单独创建线程起作用
- sql-server - 是否可以通过 Amazon RDS SQL Server 表上的触发器命中终端节点?
- typescript - 如何拥有基于不同返回类型的输入对象?
- c# - 如何跟踪 EF Core 中的身份更改?
- javascript - React useImperativeHandle 和 forwardRef 被设置,引用似乎没有更新
- swift - 从 Firebase 下载文件 - 错误域 = FIRStorageErrorDomain 代码 = -13000 - Swift
- python - 如何检查一个 Pandas 时间序列是否存在于另一个长时间序列中?
- css - LESS 为带有正斜杠的网格模板声明生成错误代码
- angular - fileInput.click() 未定义