Internet Explorer不支持Object.values

时间:2018-10-17 06:09:47

标签: javascript object internet-explorer

我已经为我的项目编写了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重写代码吗?

1 个答案:

答案 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})