我已经为我的项目编写了JavaScript代码。该代码对除Internet Explorer以外的所有浏览器都适用。
在Internet Explorer中说
对象不支持属性或方法的“值”
这是我的代码
Object.values(products.reduce(function(c, v) {
c[v.budget] = c[v.budget] || {id: v.budget,remainingBudget: v.remainingBudget,total: 0};
c[v.budget].total += parseFloat(v.unitPrice)*parseFloat(v.quantity);
return c;
}, {})).filter(function (o) {return o.remainingBudget < o.total})
我做了一些研发,它说使用Object.keys而不是Object.values。但是我无法重写我的代码。
有人可以帮助我为Internet Explorer重写代码吗?
答案 0 :(得分:0)
Try something like this var obj = products.reduce(function(c, v) {
previousPayment = typeof v.previous_unit_price != 'undefined' ? v.previous_unit_price : 0;
c[v.budget_id] = c[v.budget_id] || {id: v.budget_id,remainingBudget: parseFloat(v.remainingBudget),total: 0, previousPayment: 0};
c[v.budget_id].previousPayment += parseFloat(previousPayment);
c[v.budget_id].total += parseFloat(v.unit_price)*parseFloat(v.quantity);
return c;
}, {})
var result = Object.keys(obj).map(function(e) {
return obj[e]
}).filter(function (o) {return (o.remainingBudget + o.previousPayment) < o.total})