【发布时间】:2020-12-29 19:20:34
【问题描述】:
我正在尝试对对象数据中键“值”的值求和。 谷歌搜索了很多,但无法弄清楚这一点。 我的猜测是我没有从 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); // ?????
【问题讨论】:
-
我们需要更多信息/代码来帮助解决这个问题。你能用代码片段举一个完整的例子吗?或者至少告诉我们
newItem的作用,data的外观以及它的格式/添加方式。 -
如果数据初始化正确,您的 reduce 函数可以正常工作:jsfiddle.net/qxhtLyob/1
标签: javascript object reduce