JSON 响应的 JavaScript 百分比计算

标签 javascript api

我们使用的预订引擎从 REDZY API 检索数据和促销代码,目前我们正在努力让百分比金额发挥作用。

这是我们当前的代码

...
var tour_id = $('input[name="tour_id"]').val();
$.ajax({
  type: "POST",
  data: { action: 'verify_promo_code', promocode: promocode, tour_id: tour_id },
  url: orpheus_tours_local_var.ajaxurl,
  success: function (response) {
    if (response) {
      var responseJson = JSON.parse(response);
      console.log(responseJson);
      var discountValue
      if(responseJson.result.valueType == 'VALUE') {
          discountValue = responseJson.result.value;
      }
      else if (responseJson.result.valueType == 'PERCENT_LIMITPRODUCT') {
          discountValue = $('.grand-total').html().replace('$','');
      }
      else if (responseJson.result.valueType == 'VALUE_LIMITPRODUCT') {
          discountValue = responseJson.result.value;
      }
      else if (responseJson.result.valueType == 'VALUE_LIMITCATALOG') {
          discountValue = responseJson.result.value;
...

虽然我们对所有与固定值相关的项目(例如 VALUE_LIMITPRODUCT 和 VALUE_LIMITCATALOG 工作)都没有任何问题,但与 PERCENT_LIMITPRODUCT 相关的项目无法正常工作,并且明显错误(替换?)。理想的目标是应用百分比值并从总计中减去百分比值。

实现这一目标的最佳方法是什么?一些专家的见解将不胜感激,谢谢。

最佳答案

假设正百分比值意味着总值(value)减少,您可以使用如下所示的内容:

if (response) {
  var rJson = JSON.parse(response).result,
      ty=rJson.valueType,
      va=rJson.value;
  console.log(rJson);
  var discountValue
  if(ty == 'VALUE') {
      discountValue = va;
  }
  else if (ty == 'PERCENT_LIMITPRODUCT') {
      discountValue = $('.grand-total').text().replace('$','')*(-va/100.+1);
  }
  else if (ty == 'VALUE_LIMITPRODUCT' || ty == 'VALUE_LIMITCATALOG') {
      discountValue = va;
  ...

我赞同@Tyler Sells 的评论。在不知道实际 HTML 的情况下,这只能是粗略的猜测。在我的代码中,va 上的 parseFloat() 转换是通过应用减号隐式完成的。当然,只有在首先有一个需要转换的合理值的情况下,这才有效。 总计金额的转换是通过应用乘法来完成的。但如果内容“不可转换”,这也可能会失败。

回应:

    result:
    code: "SIERRATEST4"
    internalNotes: ""
    issueDate: "2019-10-02T17:00:00Z"
    status: "ISSUED"
    value: 10
    valueType: "PERCENT_LIMITPRODUCT"

关于JSON 响应的 JavaScript 百分比计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58444422/

相关文章:

javascript - 幻灯片图片消失

javascript - 我如何在 adonis.js 中建立我的 belongsToMany 关系

javascript - 异步函数是 JavaScript 中函数的子集吗?

regex - 使用 htaccess 将 Paypal 回调重新格式化为自定义 URL 格式

c# - 如何从 C# 调用 PHP api?(简单示例)

codeigniter - {“status” :false ,“error” :“Unknown method” } in codeigniter

javascript - 检查某个类的对象的值是否已被更改

javascript - 对于大量变量来说哪个更好

java - iso 19794-2 指纹格式

java - 如何使用 keystone API 扩展发送 JSON 格式请求 "add global role to user "?