首页 文章

Object.values在Internet Explorer中不支持

提问于
浏览
2

我为我的项目编写了一个javascript代码 . 该代码适用于除Internet Explorer之外的所有浏览器 .

在互联网资源管理器中它说

Object doesn't support property or method 'values'

这是我的代码

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

我做了一些R&D,它说使用Object.keys而不是Object.values . 但我无法重写我的代码 .

任何人都可以帮我改写我的Internet Explorer代码吗?

1 回答

  • 2
    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})
    

相关问题